무시할 수없는 예외 발생

도적

처리되지 않는 경우 무시할 수있는 예외를 어떻게 throw합니까?

매개 변수가 null이 아닌지 확인하고 싶다고 가정 해 보겠습니다.

if (param == null)
{
    throw new ArgumentException("Param is null!");
    // if the exception isn't handled in the calling code, just return
}

null 매개 변수가 전달되면 해당 메서드를 호출하는 코드를 엉망으로 만들고 싶지 않습니다. 그러나 나는 그것을 사용하는 사람이 예외를 처리하는 경우를 대비하여 여전히 예외를 던지고 싶습니다.

나는 어떻게 든 "rethrows"를 사용하는 것에 대해 생각했지만 그것이 작동하지 않을 것이라고 생각합니다.

계약과 같은 것으로 더 잘 할 수 있습니까?

민달팽이

수행하려는 작업을 처리하는 방법에는 두 가지가 있습니다.

  • 예외를 던지지 마십시오. 대신 부작용없이 돌아 오십시오. 물론 방법의 목적에 따라 불가능할 수도 있습니다.

  • 예외를 던지면서 문서에서 명확하게 만드십시오.

    • 어떤 예외가 발생합니까?
    • 그들이 던져진 이유

    그런 다음 예외를 처리할지 아니면 버블 링 할지를 결정하는 것은 호출자에게 달려 있습니다.

예외를 던지고 아무도 처리하지 않으면 코드를 호출하는 모든 것이 충돌합니다. 이는 브레이킹 체인지로 간주 될 수 있으며 행동에있어서 환영 할만한 변화가 아닐 수 있습니다.

일반적인 경험 법칙은 예외 만 던져야한다는 것입니다.

  • 중요한 경우 (즉, 오류 상태 또는 결과를 전달하는 것이 중요 함)
  • 상태 또는 결과에 가치를 변경하거나 추가 할 때

null 매개 변수 값이 없이는 작동 할 수 없기 때문에 정말로 중요한 경우 예외도 중요하며 호출자는이를 무시해서는 안됩니다. null 인수가 중요하지 않은 경우 예외를 throw하지 말고 대신 효과적으로 null / 빈 / 중립 응답을 반환해야합니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

무시할 수없는 예외 발생

분류에서Dev

예외 발생시 변수 설정

분류에서Dev

외부 소멸자에서 발생한 예외를 처리 할 수없는 이유는 무엇입니까?

분류에서Dev

예외 발생시 mvc 오류보기를 표시 할 수 없음

분류에서Dev

예외를 발생시키는 코드 줄을 볼 수 없습니다.

분류에서Dev

예외가 발생할 수없는 경우 예외를 throw하고 처리해야합니까?

분류에서Dev

"이 작업을 수행 할 권한이 없음"예외가 발생하는 이유는 무엇입니까?

분류에서Dev

예외가 발생할 수있는 모든 캐치 찾기

분류에서Dev

예외 처리 수준 / 예외 발생

분류에서Dev

VC ++ 6에서 예외를 발생시키는 함수 찾기

분류에서Dev

fromJson이 구문 분석 할 수없는 날짜 예외를 발생시킵니다.

분류에서Dev

fromJson이 구문 분석 할 수없는 날짜 예외를 발생시킵니다.

분류에서Dev

nullpointer 예외가 발생하는 JDBC에서 MySQL 저장 프로 시저를 실행할 수 없습니다.

분류에서Dev

예외를 다시 발생시키는 파이썬 생성기

분류에서Dev

Null 또는 예외 발생

분류에서Dev

jooq와 함께 Firebird에서 열 알 수없는 예외가 발생하는 이유는 무엇입니까?

분류에서Dev

"시퀀스에 요소가 없음"예외 발생

분류에서Dev

Laravel 5.2 예외 발생시 auth :: check () 없음

분류에서Dev

FTPSClient는 logout () 후 login ()을 시도 할 때 예외를 발생시킵니다.

분류에서Dev

예외를 다시 발생시키는 ExecutorService

분류에서Dev

이 코드에서 "줄을 찾을 수 없음"예외가 발생하는 이유는 무엇입니까?

분류에서Dev

예외가 발생할 때 첫 번째 줄만 표시하는 방법은 무엇입니까?

분류에서Dev

Android Studio로 APK에 서명 할 수 없음-예외 발생 : DerInputStream.getlength ()

분류에서Dev

Visual Studio 2012를 제거 할 수 없음-예외가 발생합니까?

분류에서Dev

MediaPlayerController를 음악 플레이어로 캐스트 할 수 없음-예외 발생

분류에서Dev

BadRequestError 인스턴스를 반환 할 때 Chalice "BadRequestError는 JSON 직렬화 할 수 없습니다"예외 발생

분류에서Dev

예외가 발생할 때마다 예외를 포착하는 방법은 무엇입니까?

분류에서Dev

java.lang.NoClassDefFoundError 예외를 발생시키는 ApacheHttpClient $ Factory

분류에서Dev

asyncio : 예외 발생시 개체를 큐에 넣는 방법

Related 관련 기사

  1. 1

    무시할 수없는 예외 발생

  2. 2

    예외 발생시 변수 설정

  3. 3

    외부 소멸자에서 발생한 예외를 처리 할 수없는 이유는 무엇입니까?

  4. 4

    예외 발생시 mvc 오류보기를 표시 할 수 없음

  5. 5

    예외를 발생시키는 코드 줄을 볼 수 없습니다.

  6. 6

    예외가 발생할 수없는 경우 예외를 throw하고 처리해야합니까?

  7. 7

    "이 작업을 수행 할 권한이 없음"예외가 발생하는 이유는 무엇입니까?

  8. 8

    예외가 발생할 수있는 모든 캐치 찾기

  9. 9

    예외 처리 수준 / 예외 발생

  10. 10

    VC ++ 6에서 예외를 발생시키는 함수 찾기

  11. 11

    fromJson이 구문 분석 할 수없는 날짜 예외를 발생시킵니다.

  12. 12

    fromJson이 구문 분석 할 수없는 날짜 예외를 발생시킵니다.

  13. 13

    nullpointer 예외가 발생하는 JDBC에서 MySQL 저장 프로 시저를 실행할 수 없습니다.

  14. 14

    예외를 다시 발생시키는 파이썬 생성기

  15. 15

    Null 또는 예외 발생

  16. 16

    jooq와 함께 Firebird에서 열 알 수없는 예외가 발생하는 이유는 무엇입니까?

  17. 17

    "시퀀스에 요소가 없음"예외 발생

  18. 18

    Laravel 5.2 예외 발생시 auth :: check () 없음

  19. 19

    FTPSClient는 logout () 후 login ()을 시도 할 때 예외를 발생시킵니다.

  20. 20

    예외를 다시 발생시키는 ExecutorService

  21. 21

    이 코드에서 "줄을 찾을 수 없음"예외가 발생하는 이유는 무엇입니까?

  22. 22

    예외가 발생할 때 첫 번째 줄만 표시하는 방법은 무엇입니까?

  23. 23

    Android Studio로 APK에 서명 할 수 없음-예외 발생 : DerInputStream.getlength ()

  24. 24

    Visual Studio 2012를 제거 할 수 없음-예외가 발생합니까?

  25. 25

    MediaPlayerController를 음악 플레이어로 캐스트 할 수 없음-예외 발생

  26. 26

    BadRequestError 인스턴스를 반환 할 때 Chalice "BadRequestError는 JSON 직렬화 할 수 없습니다"예외 발생

  27. 27

    예외가 발생할 때마다 예외를 포착하는 방법은 무엇입니까?

  28. 28

    java.lang.NoClassDefFoundError 예외를 발생시키는 ApacheHttpClient $ Factory

  29. 29

    asyncio : 예외 발생시 개체를 큐에 넣는 방법

뜨겁다태그

보관