我有一个自定义异常类,它扩展了 Exception 并增加了传回更多关于引发异常的数据的能力。现在的问题是,如果我想捕获自定义异常和标准异常,但使用相同的代码块处理它们,除了创建一个新函数(我不想为我想使用它的每个地方做)。
try {
} catch(QM\DebugInfoException $e) {
// I don't want to duplicate the Exception handling code up here
}catch(Exception $e){
$db->rollBack();
$return['error'] = 1;
$return['errInfo'] = array(
'code' => $e->getCode(),
'message' => $e->getMessage(),
'trace' => $e->getTraceAsString()
);
// I'd rather handle both here, and just add data on to $return['errInfo']
switch ($ExceptionType) {
case 'QM\DebugInfoException':
$return['errInfo']['extraInfo'] = $e->getExtraInfo();
break;
}
}
有人对此有什么好主意吗?