Exception
首先要明确的是,异常的类型包括了未检查的异常(运行时的异常),检查后的异常,错误。
当我们要自定义异常的时候,如果是未检查的异常,要继承RuntimeException,如果是检查后的异常,继承Exception。
下面是一个自定义异常的例子
InsufficientFundException.java
package com.advanceTopic.exceptions;
public class InsufficientFundException extends Exception {
public InsufficientFundException() {
super("存款不足!");
}
public InsufficientFundException(String message) {
super(message);
}
}
Account.java
package com.advanceTopic.exceptions;
import java.io.IOException;
public class Account {
private float balance;
public void deposit(float value) throws IOException {
if (value<=0)
throw new IOException();
}
public void withdraw(float value) throws InsufficientFundException {
if (value>balance)
throw new InsufficientFundException();
}
}
ExceptionDemo.java
package com.advanceTopic.exceptions;
public class ExceptionDemo {
public static void show() {
var account = new Account();
try {
account.withdraw(100);
} catch (InsufficientFundException e) {
System.out.println(e.getMessage());
;
}
}
}
当我们要构造异常链的时候,可以通过将一个子异常作为参数初始化给父异常来实现,描述一个异常(更一般)是由另一个异常(更特殊)引发的。