2014-03-28 2 views
0

mysql (i) 오류 코드 대신 mysqli로 처리 할 때 PHP 코드에서 예외를 사용해야한다고 들었습니다.MySQLi 용 PHP 예외 이유

그래서 모든 오류 코드를 오류 메시지에 따라 예외로 번역해야하는 mysqli 객체에 대한 자체 래퍼를 만들기 시작했습니다. 가능한 많은 오류 코드와 사실상 모든 mysqli 메서드를 자신의 메서드로 if... else..으로 처리해야한다는 사실에 관해서는 필자가 정말로 필요한지 의심스러워하기 시작했다.

대부분의 경우 가장 일반적인 오류 코드를 포착하고 가장 많이 사용되는 기능을 제공하는 약간의 래퍼가 충분하지만 그럼에도 불구하고 전혀 안전하지는 않습니다 (예 : 일부 오류 코드를 포착하지 않은 경우).).

if/else 및 mysqli_connect_errno (또는 sth.)와 같은 오류 코드를 처리하는 것은 ...으로 처리하는 것과 완전히 동일합니다.

mysqli 객체를 오류 코드를 예외로 변환하는 자체 데이터베이스 객체로 래핑하는 것이 유용한 이유는 무엇입니까?

너의 것, 모든 녹색을 띤

+0

mysqli_sql_exception을 사용하십시오. 직접 래퍼를 작성할 필요는 없습니다. – Darius

답변

0

첫째, 그것은 현대 MVC 개발 구조의 모범 사례 원칙 및 중요합니다.

몇 가지 이점은 개발 팀이 디버깅 시간을 덜 소요한다는 것입니다. 랩에 정의한 예외는 표준 mysql 오류보다 오작동에 대해 더 자세하고 명확 할 것이기 때문입니다.

두 번째로 (실제로 이미 말했듯이) 예외가 발견 될 수는 있지만 오류는 발생하지 않을 수 있습니다. 이는 개발을위한 또 다른 생산성 향상을 의미합니다.

0

MySQLi

에 대한 PHP에서 예외가 하나 개의 질문은 왜.

mysqli 개체를 오류 코드를 예외로 변환하는 자체 데이터베이스 개체로 래핑하는 것이 유용한 이유는 무엇입니까?

왜 유용 mysqli는 자신의 데이터베이스 개체

또 다른 하나는로 개체를 래핑하는 것입니다 다른

입니다.

오류 메시지에 따라 모든 오류 코드를 자체 예외로 변환하십시오.

은 실제로 유일한 질문입니다.

모두 머리 속에 하나로 섞어서 만족스런 대답을 얻지 못할 것입니다.

먼저 이해해야 할 사항 - 자체 목표는 없습니다. 모든 행동은 "누군가가 그렇게 말했기"때문에 받아 들여야 만합니다. 왜냐하면 이기 때문에 당신은이 필요합니다.필요하지 않으면 혼자있는 편이 좋습니다.

따라서 특정 예외가 발생합니다. 특정 시나리오를 처리해야하는 경우에만 필요합니다. 말해봐, "중복 키"오류를 잡으려고합니다. 그럴 경우 실행할 코드가 있기 때문입니다. 그렇다면 DuplicateKeyException으로 가십시오. 당신은 항상 try..catch에서 데이터베이스 작업을 래핑 할 수 있고이 매우 특별한 예외를 잡을 수 있습니다. 다른 모든 예외는 잡히지 않고 거품이 생기지 않습니다. 이러한 접근 방식의 명백한 이점은 생성해야하는 예외를 항상 알고 있다는 것입니다.

하지만 오류를 로그하는 것 외에 다른 시나리오가없는 경우에는 특별한 예외가 필요하지 않습니다. 귀하의 업무가 획기적으로 쉬워집니다. mysqli가 예외를 던질 수 있기 때문에 특정 예외를 throw하거나 catch하지 않아도됩니다.