2333, 기본적으로 고급 프로그래밍 언어에는 TRY CATCH가 있습니다. 그렇지 않더라도 프로그램의 견고성을 높이기 위해 오류 처리를 추가하는 것을 고려해야 합니다. 예외는 전혀 신경 쓰지 않으므로 작성할 필요가 없습니다. 더 중요한 위치에만 쓸 수도 있습니다. 때로는 트랜잭션 처리를 추가해야 할 때도 있습니다.
현재 관점에서 보면 try/catch는 특히 기본 JDBC를 사용할 때 약간 번거롭습니다(비록 지금은 그런 경우가 거의 없습니다. 데이터베이스를 비공식적으로 약간 조정할 때 ORM을 도입하는 것은 덜 권장되는 접근 방식입니다). . 어디에나 try/catch가 있습니다. 그리고 그것들은 모두 통합된 SQLException입니다. 문제가 무엇인지 알아보려면 기본 레이어에서 반환된 코드를 확인해야 합니다.
하지만 이것은 모든 것을 포괄하는 자바의 특징입니다. 대규모 프로젝트에서는 통제할 수 없는 상황이 자주 발생하며 모든 것이 계획대로 진행될 가능성은 거의 없습니다. 모든 것이 예상대로 진행됩니다. 강력하고 완전한 시스템은 예상치 못한 간단한 문제를 처리할 수 있는 기반을 갖추고 있어야 합니다. 이것이 Java 예외 시스템의 원래 의도입니다. 실제로 Java에서는 개발 및 디버깅의 편의를 위해 확장된 예외 정의를 허용합니다.
Spring이 등장하기 전, 개발팀을 위한 아키텍처를 구축할 때 비즈니스 계층과 데이터베이스 계층에 사용자 정의 예외를 도입하여 팀원들이 자신을 확장할 수 있도록 했지만, 이를 처리하려면 공유하고 소통해야 했습니다. 비즈니스 시스템에서 발생할 수 있는 문제는 초기 개발 단계에서 고려되지 않았습니다. 나중에 이 모델은 관리자들로부터 호평을 받았습니다. 시스템에서 발생하는 예외의 80-90%가 사용자 정의 예외 범위 내에 있기 때문에 런타임 예외는 거의 발생하지 않습니다. 문제를 찾아내고 유지하는 것이 매우 편리합니다.
프로그램에서 예외가 발생하면 프로그램은 프로그램에서 예외를 발생시킨 코드에서 점프하여 예외를 처리하기 위해 try 키워드와 일치하는 catch 블록을 찾습니다. 발견되면 제어권을 갖게 되며, try 블록에서 예외를 발생시키는 코드는 다시 실행되지 않습니다. 예외를 처리할 catch 블록이 없으면 finally 블록 코드를 모두 실행하고 현재 스레드가 속한 ThreadGroup의 uncaughtException 메서드를 호출한 후 예외가 발생한 현재 스레드를 종료합니다.
비정상구조
Throwable 클래스는 Java 예외 구조에 정의되어 있으며 Exceotion 및 Error는 파생된 두 하위 클래스입니다. 예외는 네트워크 오류, 파일 손상, 장치 오류, 잘못된 사용자 입력 등으로 인해 발생하는 예외를 나타냅니다. 이러한 예외는 Java 예외 캡처 메커니즘을 통해 처리할 수 있습니다. 오류는 JVM 메모리 오버플로 등과 같이 Java 런타임 환경에서 발생하는 오류를 나타냅니다.
요약
예외는 프로그램 문제에 대한 본능적인 반응입니다. try catch를 사용하면 해당 코드 블록에서 예외를 잘 처리할 수 있어 비정상적인 프로그램 중단을 피할 수 있습니다. .
부풀어서...
농담입니다
Java의 디자인 철학, Checked Exception. 함수가 런타임 외 예외를 발생시키면 외부 호출자는 설계된 모든 예외가 포착되고 처리되도록 try catch를 수행해야 합니다. 하지만 남용될 가능성이 있습니다.
프로그램이 실행될 때 전역적으로 예외를 캡처할 수 있나요?
2333, 기본적으로 고급 프로그래밍 언어에는 TRY CATCH가 있습니다. 그렇지 않더라도 프로그램의 견고성을 높이기 위해 오류 처리를 추가하는 것을 고려해야 합니다. 예외는 전혀 신경 쓰지 않으므로 작성할 필요가 없습니다. 더 중요한 위치에만 쓸 수도 있습니다. 때로는 트랜잭션 처리를 추가해야 할 때도 있습니다.
현재 관점에서 보면 try/catch는 특히 기본 JDBC를 사용할 때 약간 번거롭습니다(비록 지금은 그런 경우가 거의 없습니다. 데이터베이스를 비공식적으로 약간 조정할 때 ORM을 도입하는 것은 덜 권장되는 접근 방식입니다). . 어디에나 try/catch가 있습니다. 그리고 그것들은 모두 통합된 SQLException입니다. 문제가 무엇인지 알아보려면 기본 레이어에서 반환된 코드를 확인해야 합니다.
하지만 이것은 모든 것을 포괄하는 자바의 특징입니다. 대규모 프로젝트에서는 통제할 수 없는 상황이 자주 발생하며 모든 것이 계획대로 진행될 가능성은 거의 없습니다. 모든 것이 예상대로 진행됩니다. 강력하고 완전한 시스템은 예상치 못한 간단한 문제를 처리할 수 있는 기반을 갖추고 있어야 합니다. 이것이 Java 예외 시스템의 원래 의도입니다. 실제로 Java에서는 개발 및 디버깅의 편의를 위해 확장된 예외 정의를 허용합니다.
Spring이 등장하기 전, 개발팀을 위한 아키텍처를 구축할 때 비즈니스 계층과 데이터베이스 계층에 사용자 정의 예외를 도입하여 팀원들이 자신을 확장할 수 있도록 했지만, 이를 처리하려면 공유하고 소통해야 했습니다. 비즈니스 시스템에서 발생할 수 있는 문제는 초기 개발 단계에서 고려되지 않았습니다. 나중에 이 모델은 관리자들로부터 호평을 받았습니다. 시스템에서 발생하는 예외의 80-90%가 사용자 정의 예외 범위 내에 있기 때문에 런타임 예외는 거의 발생하지 않습니다. 문제를 찾아내고 유지하는 것이 매우 편리합니다.
시도하지 않으면 예외로 인해 프로그램이 중단됩니다. 그리고 프로그램의 정상적인 작동을 보장할 수 있습니다. 예를 들면 다음과 같습니다.
으아악계산에서 제수가 0이면 오류가 보고됩니다. 시도하지 않으면 프로그램이 바로 중단됩니다. try를 사용하면 프로그램을 실행하고 오류가 발생한 이유를 출력할 수 있습니다. log4j와 함께 사용되는 Try catch는 향후 프로그램 유지 관리에 큰 도움이 될 것입니다.
问:新手学java,在什么情况下要包括try catch啊?
답변: 기본 지식 대중화:
이상한 원리와 메커니즘
비정상구조
요약
예외는 프로그램 문제에 대한 본능적인 반응입니다. try catch를 사용하면 해당 코드 블록에서 예외를 잘 처리할 수 있어 비정상적인 프로그램 중단을 피할 수 있습니다. .
问:我理解的try catch 是处理异常。难道java有些方法对象 本身就要配合try catch来使用的吗?
답변: 기본 지식을 전파해 보겠습니다.
분류 이상
요약
이 문제에 대해서는 해당 소스 코드를 보면서 분석하고 이해하는 것이 좋습니다. 일반적인 원칙은 호출한 메서드에 감지 가능한 예외가 있는 한 이를 처리하는 것이 일방적이라는 것입니다. 또는 예외가 발생하면 다음 수준으로 예외를 발생시킵니다. 다음은 몇 가지 예입니다.
(try catch를 사용한 시나리오)
으아악(관련 소스코드 분석 보기)
으아악(분석 요약)
생성자 PrintWriter(파일 파일) 다음에 FileNotFoundException이 발생하므로 생성자 호출 시 발생하는 예외를 처리해야 합니다.
일반 언어에는 예외 처리 메커니즘이 있습니다.
제 기사 중 하나가 Java의 예외 메커니즘에 대해 간략하게 소개하고 있습니다. 도움이 되기를 바랍니다.