728x90
반응형
질문 : 잡을 수없는 ChuckNorrisException
java.lang.ChuckNorrisException
잡을 수 없게 만드는 Java 코드 스 니펫을 구성 할 수 있습니까?
떠오른 생각은 예를 들어 인터셉터 또는 측면 지향 프로그래밍을 사용하고 있습니다.
답변
나는 이것을 시도하지 않았으므로 JVM ChuckNorrisException
을 던지는 코드를 컴파일 할 수는 있지만 런타임에 Throwable을 확장하지 않는 ChuckNorrisException
의 클래스 정의를 제공 할 수 있습니다.
최신 정보:
작동하지 않습니다. 검증 자 오류를 생성합니다.
Exception in thread "main" java.lang.VerifyError: (class: TestThrow, method: ma\ in signature: ([Ljava/lang/String;)V) Can only throw Throwable objects Could not find the main class: TestThrow. Program will exit.
업데이트 2 :
사실, 바이트 코드 검증기를 비활성화하면이 작업을 수행 할 수 있습니다! ( -Xverify:none
)
업데이트 3 :
전체 스크립트입니다.
다음 클래스를 만듭니다.
public class ChuckNorrisException extends RuntimeException // <- Comment out this line on second compilation { public ChuckNorrisException() { } } public class TestVillain { public static void main(String[] args) { try { throw new ChuckNorrisException(); } catch(Throwable t) { System.out.println("Gotcha!"); } finally { System.out.println("The end."); } } }
클래스 컴파일 :
javac -cp . TestVillain.java ChuckNorrisException.java
운영:
java -cp . TestVillain Gotcha! The end.
"extends RuntimeException"을 주석 처리하고 ChuckNorrisException.java
만 다시 컴파일 하십시오.
javac -cp . ChuckNorrisException.java
운영:
java -cp . TestVillain Exception in thread "main" java.lang.VerifyError: (class: TestVillain, method: main signature: ([Ljava/lang/String;)V) Can only throw Throwable objects Could not find the main class: TestVillain. Program will exit.
확인없이 실행 :
java -Xverify:none -cp . TestVillain The end. Exception in thread "main"
출처 : https://stackoverflow.com/questions/13883166/uncatchable-chucknorrisexception
728x90
반응형
'개발관련 > 오류노트' 카테고리의 다른 글
Angular 오류 "EXCEPTION: Can't resolve all parameters for component" (0) | 2021.06.07 |
---|---|
Mockito는 void 메서드를 테스트하면 예외가 발생합니다. (0) | 2021.06.05 |
[JAVA] 효율적으로 예외 처리를 하는 밥법? (0) | 2021.06.02 |
[이클립스, Git] 이클립스 Git 연동했는데 새로 생성한 파일들이 인식이 안 될 때 (0) | 2021.01.29 |
[Maven, STS] Run as 에 Run on Server가 없거나 사라졌을 때 (0) | 2021.01.29 |