簡體   English   中英

Laravel 5異常處理

[英]Laravel 5 Exception Handling

我正在一個Laravel項目中工作,該項目將利用許多自定義異常類。 我意識到Handler類將變得非常復雜,它帶有條件邏輯,以便檢查所有這些自定義異常並觸發必要的操作。 到目前為止,我還沒有在網上看到很多關於如何最好地構造Handler類或以適合大型應用程序的方式擴展Handler類的好的建議。 有人有幫助嗎?

顯然,有很多方法可以解決此問題。

我的想法是為所有異常創建一個接口。 就像是:

interface CustomException {

    /**
     * Handle the exception
     *
     * @return Response
     */
    public function handle();
}

然后,您的異常將實現該接口,並且您可以使用handle方法執行所有操作並最終返回響應。

您的異常處理程序將如下所示:

public function render($request, Exception $e)
{
    if ($e instanceof CustomException) {
        return $e->handle();
    }

    return parent::render($request, $e);
}

(當然,您也可以將接口分為render()report()就像異常處理程序本身是結構化的一樣)


由於您需要進行一些日志記錄和郵件發送,因此依賴注入可能會派上用場:

return app()->call([$e, 'handle']);

因此,您可以聲明依賴項:

public function handle(\Illuminate\Mail\Mailer $mail){
   $mail->send(...);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM