2009-10-22 5 views
1

예외 처리를 사용하여 프로그램의 논리 흐름을 제어하는 ​​것이 좋지 않다는 것을 알고 있습니다.예외 처리 및 프로그램 논리

public void someMethod(Object someObject) { 
    try { 
     someObject.doSomething(); 
    } catch (NullPointerException npe) { 
     //handle Null case 
    } 
} 

public void someMethod(Object someObject) { 
    if(someObject != null) { 
     someObject.doSomething(); 
    } 
} 

내 질문은

을 통해,이 규칙에 좋은 예외 (HAR!) 무엇인가 : 그것은 당신이 결코하지 않을 것입니다? Java에서는 MalformedURLException을 사용하여 String이 URL인지 아닌지를 판단 할 수 있습니다. 예외 처리에 대한 다른 멋진 위반 사항은 무엇입니까?

답변

0

서버에서 클라이언트로 예외를 던질 때 (예 : WCF의 예외 예외 - 서버에서 예기치 않은 오류를 다시 클라이언트로 전달하거나 SQL Server의 SqlExpcetion을 전달하는 좋은 방법이 있습니다. .)

때로는

0

닷넷 프레임 워크 1.0 .... 당신이 요법 뭔가 다른)로 문자열을 변환 할 때 시간 (형식 예외와 같은 프로그래밍 저장, 사용할 괜찮은지 및 1.1는 없었다 TryParse 메서드가 많이 있습니다. 예전에는 많이 이런 식으로 작업했습니다.

bool IsInteger(string str) 
{ 
    try 
    { 
    Int32.Parse(str); 
    return true; 
    } 
    catch (FormatException) 
    { 
    return false; 
    } 
} 
0

Java에서 작업하는 동안 꽤 많이 사용했습니다. 예를 들어

, 필드가 어떤 클래스를이처럼 높은 (I 슈퍼 클래스 중 하나를 의미)가 아닌 클래스 자체가, 내가 쓴 무언가에 존재하는 경우에 -의

try{ 
//some stuff like follows 
Field f = cls.getDeclaredField(fieldName); 
} 
catch(NoSuchFieldException e){ 
cls = cls.getSuperClass(); 
} 

물론 이것은 루프 아래에 있으며 루프 종료 조건은 cls가 null 일 때입니다.