일부 URL을 다운로드해야하며 작동 중에 예외가 발생할 수 있습니다 (예 : java.net.NoRouteToHostException
). 잠시 후에 다시 시도하면 다운로드가 성공할 수 있으므로 임시 오류 예외로 간주됩니다.
임시 오류와 관련된 모든 예외를 잡으려고합니다. 다음과 같이 시작했습니다. java.net.NoRouteToHostException
, java.net.SocketException
이러한 예외를 나열 할 수 있습니까?임시 네트워크 오류로 인한 예외 캐치
답변
java.net.SocketException
은 java.net.NoRouteToHostException
의 부모이므로 어쩌면 부모 만 잡을 수 있습니다. SocketException
의 다른 어린이는 BindException
, ConnectException
및 PortUnreachableException
입니다. 어쩌면 SocketException
을 잡는 것이 좋습니다.
@reef가 이미 java.net.NoRouteToHostException을 exntends java.net.SocketException이라고 했으므로 java.net.SocketException 만 잡으면 충분합니다. 하지만 java.net.SocketException IOException을 확장하고 이것이 당신이 정말로 잡아야한다고 생각합니다. 모든 입출력 문제는이 예외를 throw해야합니다.
HttpRetryException은 다른 것입니다. SocketException을 확장하지 않는 java.net의 모든 것?
한 빠른 (아주 더러운) 방법은 재시도 할 작업에 일시적인 오류를 처리하는 것이 유용하다
try {
....
} catch(Exception e) {
if(e.getClass().getPackage().getName().equalsIgnoreCase("java.net")) {
retry();
}
}
임시 네트워크 오류로 java.net.MalformedURLException을 처리하지 않을 수도 있습니다. – satur9nine
하나 개의 패턴이 될 수하면 오류 콜백 인터페이스와 구현 어떤 클래스를 정의하는 것입니다 그것; 오류가 발생하면 콜백 개체를 알게하고 예외를 throw해야하는지 또는 작업을 다시 시도해야하는지 결정합니다. 기존 통신 클래스는 이러한 패턴을 따르지 않으므로 예외를 포착하여 콜백으로 변환해야 할 수 있습니다.
이 방법을 사용하면 일반적인 예외 처리보다 많은 오류 처리 시나리오를보다 명확하게 처리 할 수 있습니다. 무엇보다 시도 재 시도 횟수, 소요 시간 등을 쉽게 설정할 수 있으며, "취소"요청과 같은 항목이 있으면 향후 재 시도를 건너 뛸 수있는 수단을 제공합니다.
- 1. TF31003 오류로 인한 도움
- 2. innerjoin 오류로 인한 업데이트
- 3. javax.swing 애플리케이션에서 예외 캐치
- 4. 단위 테스트에서 예외 캐치
- 5. XML 예외 캐치
- 6. 캐치 젠드 PDO 예외
- 7. 응용 프로그램 시작시 캐치 예외 (VS.Net)
- 8. 데이터 소스 오류로 인한 ASP.NET XML
- 9. 소프트웨어 시스템 오류로 인한 치명적인 재해
- 10. 0 오류로 인한 SAL 및 SAR
- 11. Null 포인터 오류로 인한 AsyncTask에서 데이터 반환
- 12. IoC 컨테이너에서 런타임 예외 캐치
- 13. 캐치 예외 스레드 외부 스레드
- 14. 임시 변환기 앱 : 알 수없는 오류로 실패합니다.
- 15. 프레임 워크 수준의 WPF 예외 캐치
- 16. iPhone SDK 캐치 예외 처리 시도
- 17. 내부 JSF 예외 캐치 및 자체 처리
- 18. 캐치 (예외)가 거의 언제나 나쁜 아이디어입니까?
- 19. WSSF 응용 프로그램, 예외 수준 캐치
- 20. ASMX 웹 서비스에서 사용자 정의 예외 캐치
- 21. Subscription OnNext 액션에서 던질 수있는 예외 캐치
- 22. 캐치 다른 프로세스 처리되지 않은 예외
- 23. 네트워크 연결 오류로 인해 JUnit 테스트가 끝납니다
- 24. WCF - 순환 참조로 인한 serialization 예외
- 25. 유니 코드 오류로 인한 python universal feedparser 오류
- 26. 프로그래밍 방식으로 iPhone과 임시 네트워크 만들기
- 27. 사용자 네트워크 서비스의 임시 폴더를 찾으십니까?
- 28. 인증 실패 URL 내의 스프링 보안 캐치 예외
- 29. 캐치 - App Engine for Python의 모든 전역 예외 처리기
- 30. 여러 SQL 삽입 문자열과 캐치 (예외)으로 롤백
java.net.SocketException은 java.net.NoRouteToHostException의 부모이므로 어쩌면 부모 만 잡을 수 있습니다. SocketException의 다른 하위 클래스는 BindException, ConnectException 및 PortUnreachableException입니다. 어쩌면 당신의 경우 SocketException 만 잡아도 괜찮습니다. – reef
대답을 내 대답으로 추가했습니다. – reef