【发布时间】:2023-03-24 15:33:01
【问题描述】:
我已经看到一些关于这个主题的问题,但我认为除了最基本的示例之外,我更根本地缺乏如何最好地使用 try/catch 块。
在这个特定的案例中,我有一系列技术来解决一个问题,从简单到相当复杂,我的想法是这样的:
if ($zombie_killer -> board_with_nail == 'failed') {
if ($zombie_killer -> machette == 'failed') {
if ($zombie_killer -> shotgun == 'failed') {
$this -> panic;
}
}
}
但是,相反,我认为使用 try/catch 块可能是更好的方法,以便有更多空间添加自定义子流程,例如记录该技术为何不起作用,更新 UI反映“比平时更长的保持时间”,或其他什么。所以我想它会是这样的:
try {
$zombie_killer -> board_with_nail;
}
catch(Exception $e) {
try {
$zombie_killer -> machette;
}
}
但这感觉并没有好多少,考虑到其他人对“if/else vs try/catch”的所有反响,我很清楚,至少存在很大的差异和原因使用它们。这就是为什么我要询问这个用例的原因,因为我觉得最好通过 try/catch 来处理它,但不知道它是否感觉不对,因为我没有真正使用它们或者因为我没有正确地接近这个。
【问题讨论】:
-
有什么理由不使用
if(($zombie_killer -> board_with_nail == 'failed') && ($zombie_killer -> machette == 'failed') && ($zombie_killer -> shotgun == 'failed'))?
标签: php exception-handling conditional