Throw 및
의 사용 효과에 큰 차이가 있습니다. 각각의 행동에 뛰어 들자 :
strash
catch 블록에 사용되면 원래 예외의 유형, 메시지 및 스택 추적을 유지합니다. 이를 통해 예외는 수정되지 않고 계속 전파 될 수 있습니다.
노력하다 { ... }
CATCH {trash}
이 시나리오에서 try
블록에서 예외가 발생하면 catch
strash new exception ()
: 스택 트레이스 재설정
try { ... }
catch { throw }
는 새 예외 인스턴스를 생성하고 지정된 메시지를 사용합니다. 이 동작은 스택 추적을 재설정하여 Catch 블록 이전에 발생한 모든 추적 정보를 삭제합니다.
노력하다{ ... }
Catch (예외 e) {새로운 예외 (e.message)}
이 예에서 try
블록에서 예외가 발생하면 catch
catch 블록 자체에서 시작됩니다.
try{ ... }
catch(Exception e) {throw new Exception(e.message) }
catch
블록에서 ex
를 사용하지 않는 것이 좋습니다. 그렇게하면 원래 예외가 전파되지만 스택 추적이 재설정됩니다. 이로 인해 예외 소스를 디버깅하는 것이 매우 어렵습니다.
]]]
경우에 따라 추가 정보를 제공하기 위해 사용자 정의 예외 객체에 모든 예외를 마무리해야 할 수도 있습니다. 이를 위해 4 개의 예외 생성자를 포함하여
예외 에서 상속 된 새로운 예외 클래스를 정의하십시오. 선택적으로 원래 예외 및 추가 정보를 받아들이는 추가 생성자를 추가 할 수 있습니다. 사용자 정의 예외를 던질 때는 스택 추적 및 기타 속성을 보존하기 위해 원래 예외를 내부 예외 매개 변수로 전달하십시오.
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3