在catch块外使用错误

时间:2016-08-01 14:27:42

标签: php try-catch

让我们使用这样的例子:

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

有什么办法可以在catch区外使用$error吗? 如果我尝试在外面打印它,它什么都没显示,所以我确定我做错了。任何帮助都会被贬低。

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

我需要在类

之外的另一段代码中使用$ error

3 个答案:

答案 0 :(得分:0)

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

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

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

答案 1 :(得分:0)

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

你可以用2种方式做到这一点:

选项1:

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

的print_r($误差);

选项2:

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

答案 2 :(得分:0)

你不应该 $ catch在catch中声明。 你的函数抛出异常不要使用try cactch。只是抛出异常

你的函数应该只返回一种类型; 如果它返回boolean,则返回boll

也许如果您需要打印错误,请将其打印在catch