在catch块外使用错误


Use error outside catch block

让我们使用这样一个例子:

try {
    if( $var == false ) {
        throw new Exception('Fail');
    }
} catch (Exception $e) {
    $error = $e->getMessage();
}

有什么方法可以在catch块之外使用$error吗?如果我试着在外面打印,它什么都没有显示,所以我确信我做错了。任何帮助都是值得的。

编辑:这是我点击代码的确切情况

我需要在另一段代码中使用$error,在类

之外

实际上,您正在返回错误消息,如果您删除return false语句,并尝试在循环外打印,它将打印出来。

你可以通过两种方式做到这一点:

选项1:

try {
  if( $var == false ){
    throw new Exception('Fail');
  }
} catch (Exception $e){
  $error = $e->getMessage();
//  return false;
}

print_r($error);

选项2:

try {
  if( $var == false ){
    throw new Exception('Fail');
  }
} catch (Exception $e){
  return $error = $e->getMessage();
}

如果没有发生错误,则返回true。否则它将返回错误。

$error = false;
try {
  if( $var == false ){
    throw new Exception('Fail');
  }
} catch (Exception $e){
  $error = $e->getMessage();      
}
return $error;

返回true还是false取决于您的实现。

您不应该$error在catch中解密。你的函数抛出了一个异常——不要使用try-catch。只需抛出异常

您的函数应该只返回一种类型;如果返回boolean,则返回aways boolean

如果您需要打印错误,可以将其打印在catch 中