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