001 002 package railo.runtime.exp; 003 004 import railo.runtime.config.Config; 005 import railo.runtime.type.Collection; 006 import railo.runtime.type.KeyImpl; 007 008 /** 009 * 010 * 011 * To change the template for this generated type comment go to 012 * Window>Preferences>Java>Code Generation>Code and Comments 013 */ 014 public class ExpressionException extends PageExceptionImpl { 015 016 private static final Collection.Key ERR_NUMBER = KeyImpl.intern("ErrNumber"); 017 /** 018 * Class Constuctor 019 * @param message error message 020 */ 021 public ExpressionException(String message) { 022 super(message,"expression"); 023 } 024 025 /** 026 * Class Constuctor 027 * @param message error message 028 * @param detail detailed error message 029 */ 030 public ExpressionException(String message, String detail) { 031 super(message,"expression"); 032 setDetail(detail); 033 } 034 035 @Override 036 public CatchBlock getCatchBlock(Config config) { 037 CatchBlock sct=super.getCatchBlock(config); 038 sct.setEL(ERR_NUMBER,new Double(0)); 039 return sct; 040 } 041 /** 042 * @param e 043 * @return pageException 044 */ 045 public static ExpressionException newInstance(Exception e) { 046 if(e instanceof ExpressionException) return (ExpressionException) e; 047 else if(e instanceof PageException) { 048 PageException pe=(PageException)e; 049 ExpressionException ee = new ExpressionException(pe.getMessage()); 050 ee.detail=pe.getDetail(); 051 ee.setStackTrace(pe.getStackTrace()); 052 return ee; 053 } 054 else { 055 ExpressionException ee = new ExpressionException(e.getMessage()); 056 ee.setStackTrace(e.getStackTrace()); 057 return ee; 058 } 059 } 060 }