필자는 코드에 일련 화 된 IF 문을 길게 나열하지 않아야합니까? 때로는 피할 수없는 것처럼 보이지만, 저의 경험이 부족한 것인지 궁금합니다. 이미지를 처리하는 경우 예를 들어 IF 문의 긴 목록을 피해야합니까?
, 사용자는 업로드 - 당신은 오류에 대한 정확한 피드백을 제공하고자하는 - 당신과 같이있을 수 있습니다 :if($file["size"] == 0) {
throw new Exception("ERROR: File was empty");
}
if (($file["type"] != "image/gif")
|| ($file["type"] != "image/jpeg")
|| ($file["type"] != "image/pjpeg")
|| ($file["type"] != "image/png")) {
throw new Exception("ERROR: Image must be either GIF, PNG or JPEG!");
}
if ($file["size"] > 2000000) {
throw new Exception("ERROR: Image must be than less 2MB!");
}
if ($file["error"] > 0) {
throw new Exception("UNKNOWN ERROR: ".$file['error']);
}
$imgDetails = getimagesize($file["tmp_name"]);
if($imgDetails['channels'] != 3){
throw new Exception("ERROR: Image must be RGB.)";
}
if($imgDetails['0'] < 50 && $imgDetails['1'] < 50) {
throw new Exception("ERROR: Image must be larger then 50 x 50.)";
}
등 등 등 결국 파일은 모든 테스트를 통과하여 처리됩니다.
"나쁜 습관"입니까?
그것은 현명하게 들린다! :) 나는 예외에 관해 위로 읽고 있었다. 그리고이 blog는 나를 완전히 혼란시켰다. 위의 예외 유형은 무엇입니까? http://blogs.msdn.com/b/kcwalina/archive/2007/01/30/exceptionhierarchies.aspx –
얼마나 멀리 가고 싶은가에 달려 있습니다. 원하는 모든 것이 메시지를 전달하는 경우에만 기본 예외 클래스를 사용하여 제거 할 수 있습니다. 예외 클래스를 설정하면 각 예외 유형을 다르게 처리 할 수 있으므로 필요하지 않을 수 있습니다. – datasage
고마워, 지금은 질문을 업데이 트했습니다 - 그냥 좋은 측정을 위해 :) –