故意抛出异常时,我总是使用 PHP 的基本 Exception 类,只是带有不同的消息,例如:
<?php
if($a < $b){
throw new Exception('a is smaller than b');
}elseif($a > $b){
throw new Exception('a is larger than b');
}
但是,最近我注意到有些人会抛出不同类别的异常,例如:
<?php
if($a < $b){
throw new aIsSmallerThanBException();
}elseif($a > $b){
throw new aIsLargerThanBException();
}
这两种方法的优点/缺点是什么?我应该以第二种方式来做吗?我注意到,在使用 PHPUnit 进行单元测试时,您可以使用 setExpectedException() 告诉它您期待某类异常。这是否意味着第二种方法在使代码可测试方面更好?
谢谢!