Mercurial Hosting > luan
comparison core/src/luan/LuanBit.java @ 481:5d4a78c93383
luan errors are now tables
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Mon, 11 May 2015 20:26:36 -0600 |
parents | e12841f7edef |
children | e3b0846dc2ef |
comparison
equal
deleted
inserted
replaced
480:44caaa6a3d92 | 481:5d4a78c93383 |
---|---|
10 LuanBit(LuanState luan,LuanElement el) { | 10 LuanBit(LuanState luan,LuanElement el) { |
11 this.luan = luan; | 11 this.luan = luan; |
12 this.el = el; | 12 this.el = el; |
13 } | 13 } |
14 | 14 |
15 public LuanException exception(Object msg) { | 15 public LuanException exception(Object msg) throws LuanException { |
16 return new LuanException(this,msg); | 16 return new LuanException(this,msg); |
17 } | 17 } |
18 | 18 |
19 public String stackTrace() { | 19 public StackTraceElement[] stackTrace() { |
20 StringBuilder buf = new StringBuilder(); | 20 List<StackTraceElement> stackTrace = luan.stackTrace; |
21 if( el != null ) | 21 if( el != null ) |
22 buf.append( "\n\t" ).append( el.toString(null) ); | 22 stackTrace.add(new StackTraceElement(el,null)); |
23 for( int i = luan.stackTrace.size() - 1; i>=0; i-- ) { | 23 StackTraceElement[] rtn = stackTrace.toArray(new StackTraceElement[0]); |
24 buf.append( "\n\t" ).append( luan.stackTrace.get(i) ); | 24 if( el != null ) |
25 } | 25 stackTrace.remove(stackTrace.size()-1); |
26 return buf.toString(); | 26 return rtn; |
27 } | 27 } |
28 | 28 |
29 public void dumpStack() { | 29 public void dumpStack() { |
30 System.err.println( stackTrace() ); | 30 System.err.println( stackTrace() ); |
31 } | 31 } |
91 } | 91 } |
92 if( obj == null ) | 92 if( obj == null ) |
93 return "nil"; | 93 return "nil"; |
94 if( obj instanceof Number ) | 94 if( obj instanceof Number ) |
95 return Luan.toString((Number)obj); | 95 return Luan.toString((Number)obj); |
96 if( obj instanceof LuanException ) { | |
97 LuanException le = (LuanException)obj; | |
98 return le.getFullMessage(); | |
99 } | |
100 if( obj instanceof byte[] ) | 96 if( obj instanceof byte[] ) |
101 return "binary: " + Integer.toHexString(obj.hashCode()); | 97 return "binary: " + Integer.toHexString(obj.hashCode()); |
102 return obj.toString(); | 98 return obj.toString(); |
103 } | 99 } |
104 | 100 |