Java:干净地将异常重定向到字符串

Java:干净地将异常重定向到字符串,java,string,error-handling,Java,String,Error Handling,在Java中,有时在解析用户输入时会出现异常。我希望它“干净地”将输出重定向到字符串,而不是打印堆栈跟踪。示例(使用LuaJ): 例外情况: Exception in thread "Thread-3" org.luaj.vm2.LuaError: [string "jhkfchyufjhdnxvk,gh'bnmcvk,fvjmfk,xdcfsdkckucfdxfds,ie(); "]:1: unfinished string at org.luaj.vm2.compiler.LexSt

在Java中,有时在解析用户输入时会出现异常。我希望它“干净地”将输出重定向到字符串,而不是打印堆栈跟踪。示例(使用LuaJ):

例外情况:

Exception in thread "Thread-3" org.luaj.vm2.LuaError: [string "jhkfchyufjhdnxvk,gh'bnmcvk,fvjmfk,xdcfsdkckucfdxfds,ie(); "]:1: unfinished string
    at org.luaj.vm2.compiler.LexState.lexerror(Unknown Source)
    at org.luaj.vm2.compiler.LexState.read_string(Unknown Source)
    at org.luaj.vm2.compiler.LexState.llex(Unknown Source)
    at org.luaj.vm2.compiler.LexState.next(Unknown Source)
    at org.luaj.vm2.compiler.LexState.str_checkname(Unknown Source)
    at org.luaj.vm2.compiler.LexState.singlevar(Unknown Source)
    at org.luaj.vm2.compiler.LexState.primaryexp(Unknown Source)
    at org.luaj.vm2.compiler.LexState.suffixedexp(Unknown Source)
    at org.luaj.vm2.compiler.LexState.assignment(Unknown Source)
    at org.luaj.vm2.compiler.LexState.exprstat(Unknown Source)
    at org.luaj.vm2.compiler.LexState.statement(Unknown Source)
    at org.luaj.vm2.compiler.LexState.statlist(Unknown Source)
    at org.luaj.vm2.compiler.LexState.mainfunc(Unknown Source)
    at org.luaj.vm2.compiler.LuaC.luaY_parser(Unknown Source)
    at org.luaj.vm2.compiler.LuaC.compile(Unknown Source)
    at org.luaj.vm2.Globals.compilePrototype(Unknown Source)
    at org.luaj.vm2.Globals.loadPrototype(Unknown Source)
    at org.luaj.vm2.Globals.load(Unknown Source)
    at org.luaj.vm2.Globals.load(Unknown Source)
    at org.luaj.vm2.Globals.load(Unknown Source)
    at net.snugglesstuff.LeoBot.LuaThread.run(LuaThread.java:25)
输出应该是什么:

[string "jhkfchyufjhdnxvk,gh'bnmcvk,fvjmfk,xdcfsdkckucfdxfds,ie(); "]:1: unfinished string

您可以捕获异常并打印
exception.getMessage()


您可以捕获异常并打印
exception.getMessage()


谢谢!我会试试的。请注意,您可以,例如,将异常堆栈跟踪写入日志文件,以防您以后需要查看。谢谢!我会试试的。注意,你可以,例如,将异常堆栈跟踪写入日志文件,以备以后可能需要查看。使用log4j获取错误使用log4j获取错误
try {
  ... parsing code ...
}
catch (Exception exc) { // change this to catch the specific type of exceptions relevant to the parsing
    System.out.println(exc.getMessage()); // or redirect the message to a file
}