Throwable 클래스란 무엇입니까? Throwable 클래스는 Java 언어의 모든 오류 또는 예외의 상위 클래스로, 모든 예외를 통합하는 공통 클래스입니다. 해당 기능은 스택에 저장된 오류 정보를 추출하는 것입니다.
Error 클래스는 시스템 예외, 가상 머신 예외 및 사용자가 방지할 수 없는 기타 문제를 포함하는 Throwable 클래스의 하위 클래스입니다.
Exception 클래스는 Throwable 클래스의 하위 클래스이기도 하며 프로그램 자체에서 처리할 수 있는 예외입니다. 런타임 예외(선택됨)와 비런타임 예외(선택되지 않음)로 구분됩니다. 런타임 예외는 처리될 수도 있고 처리되지 않을 수도 있습니다. 런타임이 아닌 예외는 처리되어야 합니다.
런타임 예외는 RuntimeException 클래스 및 해당 하위 클래스(예: NullPointerException, IndexOutOfBoundsException 등)의 모든 예외입니다. 이러한 예외는 선택 취소되어 프로그램에서 캡처되거나 처리되지 않을 수 있습니다. 이러한 예외는 일반적으로 프로그램 논리 오류로 인해 발생하므로 프로그램은 논리적 관점에서 이러한 예외가 발생하지 않도록 노력해야 합니다.
RuntimeException이 발생하면 이를 처리할 필요가 없으며 일반적으로 가상 머신이 대신합니다.
런타임 예외가 발생한 후 예외가 포착 및 처리되지 않으면(즉, 포착이 없는 경우) 시스템은 예외를 상위 계층까지 끝까지 전달합니다. 멀티스레드인 경우에는 예외가 발생합니다. Thread.run(). 단일 스레드인 경우 Thread.run()에 의해 발생됩니다. 던진 후 스레드이면 스레드가 종료됩니다. 주 프로그램에서 예외가 발생하면 전체 프로그램이 종료됩니다. 런타임 예외는 Exception 클래스의 하위 클래스이며 일반 예외의 특성도 갖습니다. 즉, catch 블록으로 처리할 수 있습니다. 단지 우리가 이를 처리하지 않는 경우가 많기 때문입니다. 즉, 런타임 예외를 처리하지 않으면 런타임 예외가 발생한 후 스레드가 종료되거나 주 프로그램이 종료됩니다.
종료하지 않으려면 모든 런타임 예외를 포착해야 하며 이 처리 스레드가 종료되지 않도록 해야 합니다. 만약 큐에 비정상적인 데이터가 나타난다면, 비정상적인 데이터를 폐기하고 로그를 기록하는 것이 정상적인 처리가 되어야 합니다. 비정상적인 데이터의 존재는 이후의 정상적인 데이터 처리에 영향을 주어서는 안 됩니다.
비런타임 예외는 RuntimeException 이외의 예외이며 모두 Exception 클래스와 해당 하위 클래스에 속합니다. 예: IOException, SQLException 등 및 사용자 정의 예외. 이러한 종류의 예외에 대해 Java 컴파일러는 이러한 예외를 포착하고 처리하도록 강제합니다. 그렇지 않으면 프로그램이 컴파일되지 않습니다. 따라서 이런 종류의 예외가 발생하면 좋든 싫든 가능한 예외를 처리하기 위해 많은 catch 블록을 작성해야 합니다.