您的位置:首页 > 其它

异常和异常处理

2015-09-25 20:05 204 查看
一.java常见异常

异常类说明
ClassCastException类型转换异常
ClassNotFoundException未找到相应类异常
ArithmeticException算数异常
ArrayIndexOutOfBoundsException数组下标越界异常
ArrayStoreException数组中包含不兼容的值抛出的异常
SQLException操作数据库异常类
NullPointerException空指针异常
NoSuchFieldException字段未找到异常
NoSuchMethodException方法未找到抛出的异常
NumberFormatException字符串转换为数字抛出的异常
NegativeArraySizeException数组元素个数为负数抛出的异常
StringIndexOutOfBoundsException字符串索引超出范围抛出的异常
IOException输入输出异常
IllegalAccessException不允许访问异常
InstantiationException当应用程序师徒使用Class类中的newInstance()

方法创建一个类的实例,而制定的类对象无法被

实例化时,抛出该异常
EOFException文件已结束异常
FileNotFoundException文件未找到异常
二.捕捉异常
try-catch代码块和finally代码块

通过try-catch代码块获取异常,而finally代码块用于防止必须执行的代码,下面四种情况会导致finally代码块不执行:

在finally语句块中发生了异常,在前面的代码中使用System.exit()退出程序,程序所在线程死亡,关闭CPU。

注:如果try代码块中有return语句,会先执行完finally再return

三.自定义异常

自定义异常类的步骤:1.创建自定义异常类;2.在方法中通过throw关键字抛出异常对象;3.如果在当前抛出异常的方法中处理异常,可以使用try-catch语句块来捕获并处理,否则在方法的声明处通过throws关键字致命要抛出给方法调用者的异常,继续下一步操作;4.在出现异常的部分捕获并抛出异常。

public class MyException extends Exception {//创建自定义异常,继承Exception类
public MyException(String ErrorMessagr) { // 构造方法
super(ErrorMessagr); // 父类构造方法
}
}

public class Tran { // 创建类

// 定义方法,抛出异常
static int avg(int number1, int number2) throws MyException {
if (number1 < 0 || number2 < 0) { // 判断方法中参数是否满足指定条件
throw new MyException("不可以使用负数"); // 错误信息
}
if (number1 > 100 || number2 > 100) { // 判断方法中参数是否满足指定条件
throw new MyException("数值太大了"); // 错误信息
}
return (number1 + number2) / 2; // 将参数的平均值返回
}

public static void main(String[] args) { // 主方法
try { // try代码块处理可能出现异常的代码
int result = avg(102, 150); // 调用avg()方法
System.out.println(result); // 将avg()方法的返回值输出
} catch (MyException e) {
System.out.println(e); // 输出异常信息
}
}
}


四.throw和throws

throw应用于方法体中,throws应用于声明方法时。

五.运行时异常

RuntimeException异常时程序运行中产生的异常。

六.异常的使用原则

1.在当前方法声明中使用try-catch语句捕获异常

2.一个方法被覆盖时,覆盖他的方法必须抛出相同的异常或异常的子类

3.如果父类抛出多个异常,则覆盖方法必须抛出那些异常的一个子集,不能抛出新异常
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: