1、异常类
所谓异常就是程序运行时可能出现一些错误,比如试图打开一个根本不存在的文件等,异常处理将会改变程序的控制流程,让程序有机会对错误作出处理。
异常对象可以调用如下方法得到或输出有关异常的信息:
public String getMessage();
public void printStackTrace();
public String toString();
2、try-catch语句
Java使用try~catch语句来处理异常,将可能出现的异常操作放在try~catch语句的try部分,将发生异常后的处理放在catch部分。
try~catch语句的格式如下:
try {
包含可能发生异常的语句
}
catch(ExceptionSubClass1 e) {
… …
}
catch(ExceptionSubClass2 e) {
… …
}
3、自定义异常类
我们也可以扩展Exception类定义自己的异常类,然后规定哪些方法产生这样的异常。
一个方法在声明时可以使用throws关键字声明要产生的若干个异常,并在该方法的方法体中具体给出产生异常的操作,即用相应的异常类创建对象,并使用throw关键字抛出该异常对象,导致该方法结束执行。
4、示例代码
Bank .java
public class Bank {
void income(int in,int out) throws BankException{
if(in<0 || out>0){
throw new BankException();
}
System.out.println("你的操作是正常");
}
}
BankException .java
public class BankException extends Exception{
void showMessage(){
System.out.println("你发生异常了");
}
}
Demo30 .java
public class Demo30 {
public static void main(String[] args) {
// int a = 10;
// int b = 0;
//
// Person person = new Person();
// person = null;
//
// try {
//// person.speak();
// int c = a/b;
// } catch (NullPointerException e) {
// System.out.println("NullPointerException");
// }catch (ArithmeticException e) {
// System.out.println("ArithmeticException");
// }
Bank bank = new Bank();
try {
bank.income(-100, 50);
} catch (BankException e) {
e.showMessage();
}
}
}
Person .java
public class Person {
void speak(){
System.out.println("speak");
}
}