자바 이상 체인과 이상 분실에 대해 간단히 말하다
코드의 이해성, 읽기와 프로그램의 유지보수성 때문에...
저희가 이상을 던질 때마다trycatch를 해야 한다는 걸 알고 있는데...그럼 코드가 비대한 건 아니겠지..
만약 우리가 이상을 하나의 이상 연결로 연결할 수 있다면, 우리는 우리의 포장 이상만 포착할 수 있다. 우리는 Runtime Exception과 그 파생류가trycatch를 하지 않고 jvm에 의해 자동으로 포착되고 처리될 수 있다는 것을 알고 있다.
물론 우리는 자신의 이상 클래스가 Runtime Exception에서 파생된 것을 스스로 정의하고 1급 1급 포장을 통해 이상이 발생하면 JWM이 사용자 정의 Runtime Exception을 통해cause를 직접 출력할 수 있다
(원인) 바로 우리의 이상 체인..그래서 우리의 모든 이상도 출력되었고, 이렇게 하면 많은 이상 처리 코드를 감소시켰다...
Throwable ---> Exception Runtime Exception Error만이 구조 방법으로 이상 체인을 실현하는 메커니즘을 제공합니다...다른 이상은 initCause를 통해
구조 이상 연결..
다음 코드는 이상 연결의 간단한 예시입니다.전체 프로그램 과정에서 발생한 이상을 인쇄할 수 있습니다.
public class TestT {
public static void a() throws Exception{ //
try {
b() ;
} catch (Exception e) {
throw new Exception(e) ;
}
}
public static void b() throws Exception{ //
try {
c() ;
} catch (Exception e) {
throw new Exception(e);
}
}
public static void c() throws Exception { //
try {
throw new NullPointerException("c ..") ;
} catch (NullPointerException e) {
throw new Exception(e) ;
}
}
public static void main(String[]args){
try {
a() ;
} catch (Exception e) {
e.printStackTrace();
}
}
}
2、 try catch ...finally에 구멍이 하나 있는데 이상한 결함이...예를 들어 try catch 세 개가 끼워져 있는데...내부에 try catch 2개면 catch를 생략할 수 있는데...그냥 try finally...아래 코드를 보시면 두 개의 이상 정보를 잃어버렸습니다.
public class MyTest {
public void open() throws Exception{
throw new Exception(){
public String toString() {
return this.getClass().getName()+"CeryImmportException";
};
} ;
}
public void close() throws Exception{
throw new Exception(){
public String toString() {
return this.getClass().getName()+"close Exception" ;
};
} ;
}
public void three() throws Exception{
throw new Exception(){
public String toString() {
return this.getClass().getName() + "three" ;
};
} ;
}
public static void main(String[]agrs){
MyTest mt=new MyTest() ;
try{
try{
try{
mt.open();
}finally
{
System.out.println("delete open");
mt.close() ;
}
}
finally{
System.out.println("delete close");
mt.three() ;
}
}catch(Exception ex){
ex.printStackTrace();
}
}
}
이상의 이 평론은 자바 이상 체인과 이상 분실이 여러분께 공유된 모든 내용입니다. 여러분께 참고가 되고 저희를 많이 사랑해 주시기 바랍니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
38. Java의 Leetcode 솔루션텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.