Error handling 使用try/catch处理JMeter Beanshell错误

Error handling 使用try/catch处理JMeter Beanshell错误,error-handling,jmeter,try-catch,beanshell,Error Handling,Jmeter,Try Catch,Beanshell,我试图使用beanshell try catch脚本,但我很难做到这一点。问题太少了: 为什么当我尝试运行以下代码时会收到错误,而不是catch语句“error in beanshell?” String str = "a"; try { log.info(str) } catch (Exception ex) { log.error("Error in beanshell", ex); throw ex; } 错误: 2016/12/14 10:26:33 ERRO

我试图使用beanshell try catch脚本,但我很难做到这一点。问题太少了:

为什么当我尝试运行以下代码时会收到错误,而不是catch语句“error in beanshell?”

String str = "a";
try {
    log.info(str)
}

catch (Exception ex) {
    log.error("Error in beanshell", ex);
    throw ex;
}
错误:

2016/12/14 10:26:33 ERROR - jmeter.util.BeanShellInterpreter: Error invoking bsh method: eval   In file: inline evaluation of: ``String str = "a"; try {    log.info(str) }  catch (Exception ex) {     log.error("Err . . . '' Encountered "}" at line 4, column 1.

2016/12/14 10:26:33 WARN  - jmeter.protocol.java.sampler.BeanShellSampler: org.apache.jorphan.util.JMeterException: Error invoking bsh method: eval In file: inline evaluation of: ``String str = "a"; try {    log.info(str) }  catch (Exception ex) {     log.error("Err . . . '' Encountered "}" at line 4, column 1.
其次,当我运行此代码时:

try {
    String str = "a";
    log.info(str)
}

catch (Exception ex) {
    log.error("Error in beanshell", ex);
    throw ex;
}
我得到这个错误:

2016/12/14 10:27:25 ERROR - jmeter.util.BeanShellInterpreter: Error invoking bsh method: eval   In file: inline evaluation of: ``try {  String str = "a";   log.info(str) }  catch (Exception ex) {     log.error("Er . . . '' Encountered "}" at line 4, column 1.

2016/12/14 10:27:25 WARN  - jmeter.protocol.java.sampler.BeanShellSampler: org.apache.jorphan.util.JMeterException: Error invoking bsh method: eval In file: inline evaluation of: ``try {  String str = "a";   log.info(str) }  catch (Exception ex) {     log.error("Er . . . '' Encountered "}" at line 4, column 1.
同样,我不明白为什么接球还没有开始。 另外-捕获异常/可丢弃/EvalError等之间有什么区别?
感谢您正在使用语法(缺少
),因此Java解释器存在。异常处理不用于捕获语法错误


请尝试以下引发算术异常的示例:

import java.lang.ArithmeticException;

try {
    int i = 1/0;
} catch ( ArithmeticException e ) {
    log.info( "print" + e );
}
参考:


  • 您正在使用语法(缺少
    ),因此存在Java解释器。异常处理不用于捕获语法错误


    请尝试以下引发算术异常的示例:

    import java.lang.ArithmeticException;
    
    try {
        int i = 1/0;
    } catch ( ArithmeticException e ) {
        log.info( "print" + e );
    }
    
    参考:


  • log.info(str)
    之后缺少分号,因此您的代码需要:

    String str = "a";
    try {
        log.info(str);//<-- this semicolon is VERY important
    }
    
    catch (Exception ex) {
        log.error("Error in beanshell", ex);
        throw ex;
    }
    
    String str=“a”;
    试一试{
    
    log.info(str);//您在
    log.info(str)
    之后缺少分号,因此您的代码需要:

    String str = "a";
    try {
        log.info(str);//<-- this semicolon is VERY important
    }
    
    catch (Exception ex) {
        log.error("Error in beanshell", ex);
        throw ex;
    }
    
    String str=“a”;
    试一试{
    
    log.info(str);//那么,在编写脚本时,如何在BeanShell代码中找到语法错误呢?我尝试添加您所说的算术异常并删除“;"从int i=1/0,但是算术异常没有出现。我不知道我们是否可以将语法错误作为异常处理。上面的代码是一个异常处理的示例,其中您执行
    除以0
    ,这会引发
    算术异常
    。仅供参考,没有人使用异常处理来处理语法错误。该示例有效使用有效语法(添加
    )因此,请更正语法并重试,您将看到
    算术异常
    将显示为仅
    信息
    ,而不是
    BeanShell错误
    。因此,在编写脚本时,如何在BeanShell代码中查找语法错误?我尝试添加您所说的算术异常并删除“;”从int i=1/0,但是算术异常没有出现。我不知道我们是否可以将语法错误作为异常处理。上面的代码是一个异常处理的示例,其中您执行
    除以0
    ,这会引发
    算术异常
    。仅供参考,没有人使用异常处理来处理语法错误。该示例有效使用有效语法(添加
    ),因此,请更正语法并重试,您将看到
    算术异常
    将显示为仅
    信息
    ,而不是
    BeanShell错误
    如何使用
    调试()
    ?我只是在脚本的开头添加了它?在您添加的链接上,我没有找到使用它的指南。是的,如果您在脚本的开头添加此指令,您将在STDOUT(启动JMeter的控制台窗口)中看到大量输出如果我还在调试我的项目并使用GUI?我应该在哪里看到它?如何使用
    debug()
    ?我只是把它添加到脚本的开头?在你添加的链接上,我没有找到使用它的指南。是的,如果你在脚本的开头添加这个指令,你会在STDOUT中看到很多输出(启动JMeter的控制台窗口)如果我还在调试项目并使用GUI,我应该在哪里看到它?