Gau*_*ana 2 error-handling groovy exception-handling exception soapui
//Code 1
log.info undefined
Run Code Online (Sandbox Code Playgroud)
当我们运行代码1时,在soapui / readyapi中得到以下错误,如下所示:
请注意:-行号在错误消息中可见
但是,为了避免出现此警报,我们使用了try / catch来打印此消息,因此将上面的代码修改为下面的代码2
//code 2
try
{
log.info undefined
}
catch(Exception e)
{
log.info e
}
Run Code Online (Sandbox Code Playgroud)
当我们运行代码2时,我们得到以下结果
Mon Mar 19 15:04:16 IST 2018:INFO:groovy.lang.MissingPropertyException: No such property: undefined for class: Script6
Run Code Online (Sandbox Code Playgroud)
问题:-我们怎样才能看到问题所在的行号,就像我们可以在code1中看到的那样
要求:-我们的异常块应该能够分辨出问题在哪一行。
由于它是一个很小的代码,我们能够知道,所以有时代码有100多行,并且很难知道异常在哪里
小智 6
建立在@tim_yates使用答案e.stackTrace.head().linenumber
:
import org.codehaus.groovy.runtime.StackTraceUtils
try {
println undefined
} catch (Exception e) {
StackTraceUtils.sanitize(e)
e.stackTrace.head().lineNumber
}
Run Code Online (Sandbox Code Playgroud)
sanitize()
在Exception上使用,以从Exception的堆栈跟踪中删除所有奇怪的Groovy内部内容。否则,当您查看第一个StackTraceElement时,它可能不是您想要的。
deepSanitize()
是相同的,但是还将转换应用于所有嵌套的异常(如果有)。
归档时间: |
|
查看次数: |
1062 次 |
最近记录: |