考虑以下代码,我想在其中抛出一个新异常来包装我刚刚捕获的“先前”异常。
try {
doSomething();
}
catch (SomethingException $eSomething) {
try {
rollback();
}
catch (RollbackException $eRollback) {
throw new SomethingRollbackException('Copying failed, rollback failed.', null, $eSomething, $eRollback);
}
}
在某些时候,在构造新异常时,我想将两个异常作为“$previous”传入。
但在本机上,只支持一个“先前的异常”。
到目前为止我能想到的选项:
- 创建我自己的异常类,它接受一个额外的“先前”异常。但是然后呢?将其存储为私有财产?还是公开的?带存取器?我将如何制作调用代码来关心额外的信息?
- 当然,我可以只写日志,然后丢弃一个或两个异常。但这不是这个问题的重点。