异常:程序运行时会遇到很多状况,例如:磁盘空间不足,做运算时,零不能做除数等。java提供了大量的异常类,而这些异常类都继承自java.lang.Throwable类。
Throwable类有几个常用方法:String getMessage()//返回异常消息字符串
String toString()//返回异常的简单信息描述
void printStackTrace()//获取异常类名和异常信息、异常出现的位置,输出在控制台上
格式:
try{
//程序代码块
}catch(异常类型(Exception类及其子类)e){
//对异常了类型的处理
}
有时候有些程序语句无论程序是否发生异常都要执行,就需要在try···catch语句之后加上一个finally代码块。
finally{
//要执行的代码
}
throws关键字写在方法声明后面,然后声明方法中发生异常的类型
修饰符 返回值类型 方法名(参数1,参数2·····)throws 异常类1,异常类2·····{
//方法体
}
下面列出一个例子把try···catch 和 finally结合起来使用
package com.company.www; public class Main { public static void main(String[] args) { try { int a=divide(); }catch (Exception e){ System.out.println("除数不能为0"); } finally { System.out.println("圣诞快乐"); } } public static int divide()throws Exception{ return 5/0; } }
输出结果为:
除数不能为0
圣诞快乐
java允许用户自定义异常,但是自定义异常必须继承自Exception或其子类
// 自定义一个异常类继承自Exception public class Divide extends Exception{ public Divide (){ super(); // 调用Exception无参的构造方法 } public Divide (String message){ super(message); // 调用Exception有参的构造方法 } }