如果我有像“(10/0)+(29 / 0.0)+(10 / 0.1)”这样的公式作为字符串,我想要抛出 devide by zero 异常。对于这种情况,我必须解析字符串并检查除法字符过去的所有数字。
如何通过功能解决这个问题?
答案 0 :(得分:0)
作为一个开始建议,您可以使用ScriptEngine类将其评估为JS表达式:
ScriptEngineManager manager = new ScriptEngineManager();
ScriptEngine engine = manager.getEngineByName("js");
Object result = engine.eval("(10 / 0) + (29 / 0.0) + (10 / 0.1)");
然后提出适当的例外。
答案 1 :(得分:0)
这会抛出DivideByZero异常,否则会返回结果。
try
{
System.Data.DataTable dt = new System.Data.DataTable();
var result = dt.Compute("(10 / 0) + (29 / 0.0) + (10 / 0.1)", "");
//Work with further result here
}
catch(System.DivideByZeroException e)
{
//Your exception here
}