comparison src/luan/LuanException.java @ 132:14281d5bd36f

minor git-svn-id: https://luan-java.googlecode.com/svn/trunk@133 21e917c8-12df-6dd8-5cb6-c86387c605b9
author fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
date Tue, 10 Jun 2014 09:17:25 +0000
parents 6ca02b188dba
children
comparison
equal deleted inserted replaced
131:15a8e6588f3c 132:14281d5bd36f
4 public class LuanException extends Exception { 4 public class LuanException extends Exception {
5 private final String stackTrace; 5 private final String stackTrace;
6 6
7 LuanException(LuanBit bit,Object msg) { 7 LuanException(LuanBit bit,Object msg) {
8 super(message(msg),cause(msg)); 8 super(message(msg),cause(msg));
9 stackTrace = stackTrace(bit.luan,bit.el,msg); 9 stackTrace = stackTrace(bit,msg);
10 } 10 }
11 11
12 @Override public String getMessage() { 12 @Override public String getMessage() {
13 return super.getMessage() + stackTrace; 13 return super.getMessage() + stackTrace;
14 } 14 }
33 } else { 33 } else {
34 return msg.toString(); 34 return msg.toString();
35 } 35 }
36 } 36 }
37 37
38 private static String stackTrace(LuanState luan,LuanElement el,Object msg) { 38 private static String stackTrace(LuanBit bit,Object msg) {
39 StringBuilder buf = new StringBuilder(); 39 StringBuilder buf = new StringBuilder();
40 for( int i = luan.stackTrace.size() - 1; i>=0; i-- ) { 40 buf.append( bit.stackTrace() );
41 StackTraceElement stackTraceElement = luan.stackTrace.get(i);
42 buf.append( "\n\t" ).append( el.toString(stackTraceElement.fnName) );
43 el = stackTraceElement.call;
44 }
45 if( msg instanceof LuanException ) { 41 if( msg instanceof LuanException ) {
46 LuanException le = (LuanException)msg; 42 LuanException le = (LuanException)msg;
47 buf.append( "\ncaused by:" ).append( le.stackTrace ); 43 buf.append( "\ncaused by:" ).append( le.stackTrace );
48 } 44 }
49 return buf.toString(); 45 return buf.toString();