자바 이상 처리 (부자 이상 처리)
1. 자류 방법은 부류 방법의 이상이나 그 자류 이상만 던질 수 있다
이런 제한은 주로 자류가 상향 전환을 할 때 이상을 정확하게 포착하지 못하기 때문이다
package thinkinginjava;
public abstract class InningDemo1 {
public void walk() throws BaseException{}
public abstract void sing() throws BaseException;
}
class BaseException extends Exception{}
class SubException1 extends BaseException{}
class CupException extends Exception{}
package thinkinginjava;
public interface OtherFunction {
public void task() throws RuntimeException;
}
package thinkinginjava;
public class SubInningDemo1 extends InningDemo1 implements OtherFunction{
//
@Override
public void walk() throws BaseException{}
// ,
//public void walk() throws Exception{}
//
@Override
public void sing() throws SubException1{}
// ,
public void task(){}
}
이 예를 들면, 만약에 하위 클래스에 이 방법이 있다면publicvoidwalk ()throws CupException {}, 하위 클래스 방법에 이상이 없습니다. 우리는 하위 클래스의 인용을 사용하여 하위 클래스를 가리킵니다.
public void f(){
InningDemo1 inn = new SubInningDemo1();
inn.walk() ;// walk() , CupException, f() 。 。
}
위의 예에서, 우리도 볼 수 있듯이, 자류 방법은 이상을 던지지 않을 수 있다2. 하위 구조기는 반드시 부류 구조기의 이상이나 그 부류 이상을 던져야 한다
이것은 하위 클래스 구조기에 기본적으로 부모 클래스가 추가되었기 때문이다
package thinkinginjava;
public abstract class InningDemo2 {
public InningDemo2() throws SubException{
}
}
class FatherException extends Exception{}
class SubException extends FatherException{}
class PenException extends Exception{}
package thinkinginjava;
public class SubInningDemo2 extends InningDemo2{
public SubInningDemo2() throws FatherException {
// ,
//super();
}
}
3. 이상 분실1、finally에서 이상을 던지면 이전에 던진 이상을 잃어버릴 수 있습니다
package thinkinginjava;
public class FinallyException {
public static void main(String[] args){
try{
try{
throw new RedException();
}finally{
//
throw new BlueException();
}
}catch(Exception e){
System.out.println(e);
}
}
}
class RedException extends Exception{}
class BlueException extends Exception{}
실행 결과:thinkinginjava.BlueException2,finally에서return을 사용하면 이상이 발생하지 않습니다
package thinkinginjava;
public class ReturnException {
public static void main(String[] args){
try{
throw new Exception();
}finally{
return;
}
}
}
이상 코드를 보았지만, 실행할 때 출력이 없습니다이상의 이 간단한 자바 이상 처리(부자 이상 처리)는 바로 편집자가 여러분께 공유한 모든 내용입니다. 여러분께 참고가 되고 저희를 많이 사랑해 주시기 바랍니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
38. Java의 Leetcode 솔루션텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.