Laravel 5 错误处理

Laravel 5 Error Handling

我正在使用 Laravel 5,我正在尝试制作自定义 404 页面和自定义异常处理,但我不知道将我的代码放在哪里。前段时间有一个 ErrorServiceProvider 现在不存在了。谁能给我一些指点?

编辑:我看到他们在 App/Exception 文件夹中添加了一个 Handler class,但这似乎仍然不是放置它的正确位置,因为它根本不遵循 laravel 4.2 App::error、App::missing 和 App::fatal 方法。有人有什么想法吗?

使用app/Exceptions/Handler.php 渲染方法来实现。 L5 文档 http://laravel.com/docs/5.0/errors#handling-errors

public function render($request, Exception $e)
{
    if ($e instanceof Error) {
        if ($request->ajax()) {
            return response(['error' => $e->getMessage()], 400);
        } else {
            return $e->getMessage();
        }
    }

    if ($this->isHttpException($e)) {
        return $this->renderHttpException($e);
    } else {
        return parent::render($request, $e);
    }
}

以下是在遵守 .env 中的 APP_DEBUG 设置的同时自定义错误页面的方法。

app/Exceptions/Handler.php

public function render($request, Exception $e)
{
    if ($this->isHttpException($e))
    {
        return $this->renderHttpException($e);
    }
    else
    {
        if (env('APP_DEBUG'))
        {
            return parent::render($request, $e);
        }
        return response()->view('errors.500', [], 500);
    }
}