내 프로젝트에 대한 사용자 정의 예외 클래스를 작성하고 싶습니다. 다른 프로젝트에서 사용할 수 있도록 예외 프레임 작업을 만들어야합니다. 해결해야 할 모든 전략이나 단계를 안내해주십시오.자바에서 사용자 정의 예외를 작성하는 모범 사례 또는 좋은 전략
1
A
답변
6
Java의 예외는 Throwable에서 상속받은 일반 개체입니다. 예외를 검사 할 것인지 (즉, 컴파일러가 던질 수있는 메서드 시그니처에 throws
절을 확인하는지 여부)를 결정합니다. 사용자 정의 예외를 확인하려면 RuntimeException에서 Exception (예외가 아닌 경우)을 상속받습니다. 응용 프로그램을 종료해야하는 복구 할 수없는 예외에 대해서는 Error
을 확장 할 수도 있습니다.
예외를 작성하는 경우 설명에주의를 기울여야합니다. 즉, 예외가 발생하면 예외 메시지와 스택 추적 만보고 무슨 일이 일어 났는지 일반적인 생각을 가지고 있어야합니다. 메시지를 매개 변수로 사용하는 예외 생성자는 귀하의 친구입니다. Exception
과 RuntimeException
모두 필요한 생성자를 제공하므로 가장 간단한 경우에는 생성자를 호출해야합니다.
예외를 던지는 메소드와 동일한 추상화 수준에서 예외를 유지해야합니다. 예를 들어 특정 데이터베이스의 구현 세부 사항을 숨기는 도메인 객체에 액세스하기위한 일반 인터페이스가있는 경우 오류가 발생하면 데이터베이스 연결에서 발생한 예외를 단순히 다시 발생 시켜서는 안됩니다. 올바른 예외 수준의 예외 클래스로 예외를 래핑 할 수 있습니다. 이전과 마찬가지로 Exception
및 RuntimeException
에는 이미 해당 제약사가 있습니다.
프로젝트 및 특정 클래스의 예외 계층 구조 계획에 도움이되지 않을 수 있습니다. 프로젝트에 대한 더 자세한 설명으로 질문을 업데이트하십시오.
관련 문제
- 1. codeigniter에서 쿼리를 작성하는 모범 사례
- 2. Winforms에서 사용자 정의 컨트롤 페인팅을위한 모범 사례?
- 3. 자바로 어댑터를 작성하는 모범 사례
- 4. 모범 사례 또는 불량 사례
- 5. Java 서비스 또는 데몬 스크립트를 작성하는 모범 사례
- 6. C#의 SQL에서 예외를 catch하는 모범 사례
- 7. GLUT 함수에서 예외를 처리하는 모범 사례
- 8. 예외 - 모범 사례
- 9. asp.net에서 사용자 컨트롤을 만드는 모범 사례?
- 10. 사용자 지정 UITableViewCell 모범 사례?
- 11. 참조 또는 반환 - 모범 사례
- 12. 동기화 자바에서 "모범 사례"에 대한
- 13. ADO.NET DataService 클라이언트를 작성하는 모범 사례
- 14. 사용자 테이블 데이터베이스 모범 사례
- 15. Ant 또는 MSBuild에서 빌드 스크립트를 작성하는 모범 사례
- 16. ASP.NET MVC에서 모델 정의 모범 사례
- 17. 사용자 정의 http 사용자 에이전트 문자열에 대한 모범 사례?
- 18. MongoDB 중첩 또는 모범 사례 우수 사례
- 19. ASP.NET 응용 프로그램을 작성하는 모범 사례
- 20. 병렬 단위 테스트를 작성하는 모범 사례
- 21. 프로그래밍 언어 파서를 작성하는 모범 사례
- 22. MVC (사용자 ID 유지 관리) 모범 사례
- 23. BLL 오류 모범 사례
- 24. 모범 사례 또는 날짜 개체
- 25. 디자인 모범 사례 - 사용자 선택을 처리하는 가장 좋은 방법
- 26. 사용자 정의 오픈 소스 프로젝트의 소스 제어를위한 모범 사례
- 27. NSError 도메인/사용자 정의 도메인 - 규칙 및 모범 사례
- 28. 사용자 로그인 감사 - 모범 사례
- 29. SQL Server 사용자 모범 사례
- 30. 예외 처리 모범 사례
사실 가능한 모든 기능을 사용할 수있는 구성 요소를 만들려고합니다. 맞춤 예외를 만드는 동안주의해야하는 접근 방법 목록 (do 및 don'ts)을 찾지 못했습니다. Exception 클래스에서 국제화를 사용했습니다. 그것은 단지; printStackTrace()를 오버라이드 (override)하는 것이 좋을까? – Wahid
printStackTrace()를 오버라이드 (override)하는 것은 추천하지 않습니다. 개발자가 버그를 잡는 데 도움이되는 유일한 것이기 때문에, 데이터는 매우 중요합니다. 어떻게 바꿀거야? – socha23