Mercurial Hosting > luan
comparison core/src/luan/LuanBit.java @ 459:30544d1a9cbf
better stack overflow handling
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Wed, 06 May 2015 12:58:06 -0600 |
parents | bbad2d06f728 |
children | b48cfa14ba60 |
comparison
equal
deleted
inserted
replaced
458:507c0af598ba | 459:30544d1a9cbf |
---|---|
34 public Object call(LuanFunction fn,String fnName,Object[] args) throws LuanException { | 34 public Object call(LuanFunction fn,String fnName,Object[] args) throws LuanException { |
35 List<StackTraceElement> stackTrace = luan.stackTrace; | 35 List<StackTraceElement> stackTrace = luan.stackTrace; |
36 stackTrace.add( new StackTraceElement(el,fnName) ); | 36 stackTrace.add( new StackTraceElement(el,fnName) ); |
37 try { | 37 try { |
38 return fn.call(luan,args); | 38 return fn.call(luan,args); |
39 } catch(StackOverflowError e) { | |
40 throw exception("stack overflow"); | |
39 } finally { | 41 } finally { |
40 stackTrace.remove(stackTrace.size()-1); | 42 stackTrace.remove(stackTrace.size()-1); |
41 } | 43 } |
42 } | 44 } |
43 | 45 |