2014-10-11 4 views
0

laravel에서 중앙 처리 오류 처리를 위해 노력하고 있습니다. 마지막 하나는 다른 사람에서 실행되지 않는,App :: abort 및 App :: error

// Bad request 
App::error(function(FormValidationException $e, $code) { 
    App::abort(400, $e->getErrors()); 
}); 

// Unauthenticated 
App::error(function(UnauthenticatedExcpetion $e, $code) { 
    App::abort(401, 'Unauthenticated'); 
}); 

// Unauthorized 
App::error(function(UnauthorizedExcpetion $e, $code) { 
    App::abort(403, 'Unauthorized'); 
}); 

// Http 
App::error(function(HttpException $e, $code) { 
    return Response::json($e->getMessage(), $code); 
}); 

문제는 다음과 같습니다

내 코드처럼 보이는 무엇. 나는 Response으로해야만합니다. 왜냐하면 다른 각도 인 $http이 성공합니다.

어떻게 작동합니까? (나는 그것을 건조하게 유지하고 싶지 않다. 그래서 복수형은 아니다.) Response:json하시기 바랍니다.

답변

-1

예외가 전역 네임 스페이스에 있습니까? 아니면 use이 파일의 맨 위에 제대로 있습니까?

또한 unauthenticatedunauthorised 처리기 모두에서 Exception의 철자가 잘못되었습니다.

+0

그들은 해고 당하고, 마지막 해고가 아닙니다. 예, 오타가 실제입니다 :/ – Itrulia

+0

잡히지 않은 첫 번째 예외가 요청에 던져지면 오류 처리기에 도달하여 요청이 종료됩니다. 다른 요청 처리기로 전달되지 않습니다. 적절한 네임 스페이스의'HttpException'이 throw되고 핸들러가 호출되기를 원한다면 잡히지 않도록해야합니다. – Dwight

+0

'App :: abort'는 잡히지 않은 HttpException을 던집니다. – Itrulia