"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > 예외 처리에서`Throw '와`Throw New Exception ()`의 차이점은 무엇입니까?

예외 처리에서`Throw '와`Throw New Exception ()`의 차이점은 무엇입니까?

2025-04-13에 게시되었습니다
검색:223

What's the Difference Between `throw` and `throw new Exception()` in Exception Handling?

Throw 의 사용 효과에 큰 차이가 있습니다. 각각의 행동에 뛰어 들자 : strash

문은 현재 활성 예외를 재정의합니다.

catch 블록에 사용되면 원래 예외의 유형, 메시지 및 스택 추적을 유지합니다. 이를 통해 예외는 수정되지 않고 계속 전파 될 수 있습니다. 노력하다 { ... } CATCH {trash}

이 시나리오에서 try 블록에서 예외가 발생하면 catch

블록은 원래 정보를 그대로 유지하면서 동일한 예외를 다시 줄입니다.

strash new exception () : 스택 트레이스 재설정

try { ... }
catch { throw }
는 새 예외 인스턴스를 생성하고 지정된 메시지를 사용합니다. 이 동작은 스택 추적을 재설정하여

Catch 블록 이전에 발생한 모든 추적 정보를 삭제합니다. 노력하다{ ... } Catch (예외 e) {새로운 예외 (e.message)}

이 예에서 try 블록에서 예외가 발생하면 catch

블록은 원래 예외의 메시지와 함께 새로운 예외를 생성하지만 스택 추적은

catch 블록 자체에서 시작됩니다.

Throw Ex
try{ ... }
catch(Exception e) {throw new Exception(e.message) }

catch 블록에서 ex 를 사용하지 않는 것이 좋습니다. 그렇게하면 원래 예외가 전파되지만 스택 추적이 재설정됩니다. 이로 인해 예외 소스를 디버깅하는 것이 매우 어렵습니다.

사용자 정의 예외 생성

]]] 경우에 따라 추가 정보를 제공하기 위해 사용자 정의 예외 객체에 모든 예외를 마무리해야 할 수도 있습니다. 이를 위해 4 개의 예외 생성자를 포함하여 예외 에서 상속 된 새로운 예외 클래스를 정의하십시오. 선택적으로 원래 예외 및 추가 정보를 받아들이는 추가 생성자를 추가 할 수 있습니다. 사용자 정의 예외를 던질 때는 스택 추적 및 기타 속성을 보존하기 위해 원래 예외를 내부 예외 매개 변수로 전달하십시오.

최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3