eval.bsh

来自「用java 编写的源码开放的文本编辑器。有很多有用的特性」· BSH 代码 · 共 67 行

BSH
67
字号
/**	Evaluate the string in the current interpreter (see source()).	Returns the result of the evaluation or null.	<p>	Evaluate a string as if it were written directly in the current scope, 	with side effects in the current scope.	<p>	e.g.	<code><pre>		a=5;		eval("b=a*2");		print(b); // 10	</pre></code>	<p>	eval() acts just like invoked text except that any exceptions generated	by the code are captured in a bsh.EvalError.  This includes ParseException	for syntactic errors and TargetError for exceptions thrown by the evaluated	code.	<p>	e.g.	<pre>		try {			eval("foo>>><>M>JK$LJLK$");		} catch ( EvalError e ) {			// ParseException caught here		}		try {			eval("(Integer)true");  // illegal cast		} catch ( EvalError e ) {			// TargetException caught here			print( e.getTarget() )  // prints ClassCastException		}	</pre>	<p>		If you want eval() to throw target exceptions directly, without wrapping	them, you can simply redefine own eval like so:	<pre>		myeval( String expression ) {			try {				return eval( expression );			} catch ( TargetError e ) {				throw e.getTarget();			}		}	</pre>	<p>	Returns the value of the expression.	<p>	Throws bsh.EvalError on error	<p>	@return the value of the expression.	@throws bsh.EvalError on error*/bsh.help.eval = "usage: eval( String expression )";Object eval( String expression ) {    return this.interpreter.eval( expression, this.caller.namespace );}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?