故意不捕获异常

时间:2019-03-25 12:46:49

标签: php exception

所以我有一些代码

new DrawerBuilder().withActivity(this).build();

到目前为止,我会做类似的事情

public function getPrices($debtorId)
{
    $priceListId = $this->getPriceListId($debtorId);
    if(!$priceListId){
        throw new \Exception('No list found for this customer');
    }

    // doing some operations here that require $priceListId

    return $prices;

区别在于,如果我想,我可以捕获异常,而exit语句则无法实现。

但是,在这种情况下,我确实希望程序退出。但是我的IDE警告我,我没有捕捉到异常。所以,我现在真的应该这样做吗?

if(!$priceListId) exit('No list found for this customer');

在我看来,后者似乎是不必要的,实际上是在降低代码质量。因此:故意不捕获某些异常是否可以接受?还是我应该一起摆脱异常,而只使用普通的旧try { $prices = $priceHandler->getPrices($debtorId); } catch(Exception $e) { exit($e->getMessage()); }

我尝试搜索此问题,但仅获得有关尝试/捕获无法正常工作的技术人员的结果。

1 个答案:

答案 0 :(得分:3)

否,如果您不想在这里捕获异常。

即使您想捕获它,它也很可能在其他地方,因此您绝对不必将其包装在try-catch中。

相反,您应该告诉IDE此方法应该引发异常:

/**
 * @throws \Exception
 */
public function getPrices($debtorId)