exceptionHandling

php๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ด๋„ ์˜ค๋ฅ˜๋ฅผ ๋ฐœ์ƒ์‹œํ‚ค๊ณ  ๋‹ค์Œ ์ฝ”๋“œ๋ฅผ ๊ณ„์† ์‹คํ–‰ํ•˜๋Š”๋ฐ ๋ผ๋ผ๋ฒจ์€ php๋ณด๋‹ค ์—„๊ฒฉํ•ด์„œ ์˜ค๋ฅ˜๋„ ์˜ˆ์™ธ๋กœ ๋ฐ”๊พธ์–ด ๋˜์ง€๊ณ  ์ฝ”๋“œ ์‹คํ–‰์„ ๋ฉˆ์ถ˜๋‹ค. ์ด๋ ‡๊ฒŒ ๋ฐœ์ƒํ•œ ๋ชจ๋“  ์˜ˆ์™ธ๋Š” ์ „์—ญ ์˜ˆ์™ธ ์ฒ˜๋ฆฌ๊ธฐ๊ฐ€ ์žก๋Š”๋ฐ app/Exceptions/Handler.phpํŒŒ์ผ์ด ์ด ์ฒ˜๋ฆฌ๊ธฐ์ด๋‹ค.

์ด ์ฒ˜๋ฆฌ๊ธฐ๋Š” ๋‘๊ฐ€์ง€ ์ผ์„ ์ˆ˜ํ–‰ํ•˜๋Š”๋ฐ report(Exception $e)๋ฉ”์„œ๋“œ๋Š” ์˜ˆ์™ธ๋ฅผ ๋ณด๊ณ ํ•˜๋Š” ๋ฉ”์†Œ๋“œ๋กœ ์ด๋ฉ”์ผ์ด๋‚˜ ๋ฒ„๊ทธ ์ถ”์ ์‹œํŠธ๋ฉฉ์œผ๋กœ ์˜ˆ์™ธ ๋‚ด์šฉ์„ ์ž˜ ํฌ์žฅํ•ด์„œ ๋ณด๊ณ ํ•˜๋Š” ๋กœ์ง์„ ์ž‘์„ฑํ•œ๋‹ค. parent::report($e)๋Š” ๋ผ๋ผ๋ฒจ ๋กœ๊ทธ์— ์˜ˆ์™ธ๋ฅผ ๊ธฐ๋กํ•˜๋Š” ์ผ์„ ์ˆ˜ํ–‰ํ•œ๋‹ค. render($request, Exception $e) ๋ฉ”์„œ๋“œ๋Š” ์˜ˆ์™ธ๋ฅผ ํ™”๋ฉด์— ํ‘œ์‹œํ•˜๋Š” ๋ฉ”์„œ๋“œ์ด๋‹ค.

//Handler.php
public function render($request, Exception $e){
    if(app()->environment('production')){
        if($e instanceof \Illuminate\Database\Eloquent\ModelNotFoundException){
            return response(view('errors.notice',[
                'title'=>'์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.',
                'description' => '์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค! ์š”์ฒญํ•˜์‹  ํŽ˜์ด์ง€๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.'
            ]), 404);
        }
    }

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

Last updated