2010-03-02 3 views
1

예외에 대한 내 이해와 해당 개체에 미치는 영향을 확인하고자합니다.예외 동작 및 개체에 대한 영향을 확인하십시오.

예외가 발생하면 메서드 처리가 중단됩니다. 맞습니까? 내가 객체를 파괴 __construct에서 예외를 던져 그래서 난 그냥 또한이

if (some_check()) { 
    throw new Exception(...); 
} 

rest_of_code(); 

해야

if (some_check()) { 
    throw new Exception(...); 
} else { 
    ... 
} 

을하고 아무 문제 오른쪽, 없다? 그래서 모든 인수 검증 예외를 던져야합니다. 즉, 입력 유효성 검증 예외에서 어쨌든 불어 나게 될 경우 오브젝트를 빌드 할 필요가 없습니다. 당신이 바로 그것을 가지고 그래

답변

2

: D 당신은 나에게 투표를 가지고 : D

Allthough, 당신은 하나의 데이터에 두 테스트 할 수도 있습니다이 고려 : D

if(checkOne (a)){ 
    throw new Exception(...); 
} 
else (checkTwo(a)){ 
... 
+0

두 번째 검사에서'else'가 중복되지 않습니까? 'if() {} if() {}'는 다소 차이가 있습니까? – user151841

+1

checkOne이 환자의 얼굴에 혈관종이 있는지 검사하고, 혈관종의 털이 자라고 있는지 확인합니다 (암의 가설 표식). 그러면이 방법으로 검사를 중첩하는 것이 좋습니다. 혈관종이없는 환자에게는 체크 2가 실행되지 않습니다. –

+0

그건 상당히 고안된 예제입니다 : D 일부 프로그래밍 언어는 다음과 같은 중첩 된 문장의 군대를 생성합니다 : D 의사 결정 지원 시스템은 이러한 프로그래밍 언어로 구현됩니다. –

0

을이 던져 아주 정상입니다 생성자에서 예외가 발생하면 다른 옵션은 남지 않습니다. 또한 어떤 종류의 메모리 리소스를 보유하고있는 개체에 대해서는 언급하지 않았고, using 문이나 try/catch/finally를 사용하고 있으며 예외가있는 메모리를 해제했는지 확인하십시오.

+0

PHP가'finally '를 지원합니까? – user151841

+0

미안하지만 C#이라고 생각했습니다. – JonH

관련 문제