php try ...还
PHP中是否有与Python类似的内容?try ... else
我需要知道try块是否正确执行,因为块正确执行时,将打印一条消息。
PHP中是否有与Python类似的内容?try ... else
我需要知道try块是否正确执行,因为块正确执行时,将打印一条消息。
PHP 没有 try/catch/else。但是,您可以在 catch 块中设置一个变量,该变量可用于确定它是否已运行:
$caught = false;
try {
// something
} catch (Exception $e) {
$caught = true;
}
if (!$caught) {
}
我认为“else”条款有点限制,除非你不关心那里抛出的任何异常(或者你想冒泡这些异常)......根据我对Python的理解,它基本上相当于这个:
try {
//...Do Some Stuff Here
try {
// Else block code here
} catch (Exception $e) {
$e->elseBlock = true;
throw $e;
}
} catch (Exception $e) {
if (isset($e->elseBlock) && $e->elseBlock) {
throw $e;
}
// catch block code here
}
所以它有点冗长(因为你需要重新抛出异常),但它也像else子句一样冒泡堆栈...
编辑或者,更干净的版本(仅限5.3)
class ElseException extends Exception();
try {
//...Do Some Stuff Here
try {
// Else block code here
} catch (Exception $e) {
throw new ElseException('Else Clasuse Exception', 0, $e);
}
} catch (ElseException $e) {
throw $e->getPrevious();
} catch (Exception $e) {
// catch block code here
}
编辑 2
重新阅读你的问题,我认为你可能用一个“其他”块把事情复杂化了......如果您只是在打印(这不太可能引发异常),那么您实际上并不需要其他块:
try {
// Do Some stuff
print "Success";
} catch (Exception $e) {
//Handle error here
print "Error";
}
该代码将仅打印或...永远不要两者兼而有之(因为如果函数引发异常,它实际上不会被打印出来......但我不认为CAN会抛出异常...)。Success
Error
print
print