2012-03-28 4 views
1

PHP 설명서에 표시된대로 직접 exception handler을 만들 수 있습니다. 나는 내가 작업하고있는 프로젝트 전체에서 내 사용자 생성 오류 및 예외를 처리하는 합리적인 방법이라고 생각합니다. 연구를 통해 ErrorException (첫 번째 대답에서)을 사용하고 처리 할 수없는 error levels에 대해 false를 반환하는 것과 같은 것을 포함하여 특정 클래스를 구현하는 데 상당한 진전을 보였습니다.

그러나 저는 더 일반적인 것으로 벽에 부딪 쳤습니다. 나는 모든 클래스에 대해 별도의 핸들러를 작성하지 않아도된다. (특히 대다수의 코드가 모든 클래스에서 동일 할 것이기 때문에). 그러나 동일한 처리기에서 전체 프로젝트에 대해 모든 오류가 발생하는 것은 대단히 바람직하지 않습니다.

내가 받아 들일 수있는 해결책처럼 느껴지는 가장 가까운 것은 오류를 처리하고 각 메시지에 메시지를 저장하려는 모든 클래스에 대해 ErrorException의 하위 클래스를 작성하는 것입니다. 그러나 이것으로도 아마 잘못 될 것입니다 (기본 오류 메시지를 저장할 적절한 장소가 아닐 것입니다).

내가 찾지 못한 보편적으로 받아 들여지는 방법이 있습니까? 또는 일반적으로 실제로 수행되는 방식 중 하나입니다. 또는 프로젝트의 크기에 따라 확장 가능한 여러 솔루션이 있습니까?일반적인 PHP 예외 처리기를 구현하는 방법

EDIT : 재사용 된 코드로 일반적인 Exception_Handler를 작성하고 각 오류 집합 (실제 herp 순간)에 대해 확장 할 수 있음을 깨달았지만 여전히 동일한 장소의 모든 오류를 처리해야하는 것처럼 보입니다. . 내가 완전히 잘못했다면 알려주세요.

EDIT 2 : 오류를 던질 각 클래스에 대한 오류 메시지가 포함 된 구성 파일로 이동하기로 결정하면 오류를 throw하는 클래스의 이름이로드 된 구성 파일을 정의하여 관련된 메시지 목록을 가져옵니다 오류 번호. 또한 사용자에게 보내야하는 메시지 (본질적으로 고유 한 메시지 대 일반 메시지)와 반대로 기록되어야하는 메시지를 쉽게 정의 할 수 있습니다.

나는 이것을 답이나 다른 것으로 표시 할 것입니다.하지만 제가 잘못 알고 있다면 알려 주시면 언제나 도움을 받으실 수 있습니다.

답변

0

오류를 던질 각 클래스에 대한 오류 메시지가 포함 된 구성 파일로 이동하기로 결정하면 오류를 throw하는 클래스의 이름은 오류 번호와 관련된 메시지 목록을 가져 오기 위해로드되는 구성 파일을 정의합니다. 또한 사용자에게 보내야하는 메시지 (본질적으로 고유 한 메시지 대 일반 메시지)와 반대로 기록되어야하는 메시지를 쉽게 정의 할 수 있습니다.

더 구체적으로는 각 배열에 해당 오류 번호에 대한 오류 메시지 배열이 들어있는 배열 배열을 정의하는 ini 파일을 사용합니다. 그런 다음 오류 번호와 함께 foreach를 사용하여 오류 메시지를 반환하십시오.

관련 문제