在一段代码中,常会出现异常和错误,首先必须明白什么是异常,什么是错误。
错误就是编译错误,说白了就是你的语法有错误了,由java虚拟机上报 了导致你的程序终止了,但是异常是虽然你某段程序出现了异常,但是程序还是可以继续运行的,只不过可能会抛出一个异常,那么今天我就来复习一下java中的异常处理。
一:什么是异常处理?
异常处理机制就像我们对平时可能遇到的意外情况,预先想好了一些处理的办法。也就是说,在程序执行代码的时候,万一发生了异常,程序会按照预定的处理办法对异常进行处理,异常处理完毕后,程序继续运行。
java的异常处理是通过5个关键字来实现的:try、catch、finally、throw、throws

三.常见的异常类型
Exception 异常层次结构的*根类
ArithmeticException 算数错误情形
ArrayIndexOutOfBoundsException 数组下标越界
NullPointerException 尝试访问null对象成员
ClassNotFoundException 不能加载所需的类
InputMismatchException 欲得到的数据类型与实际输入的类型不匹配
IllegalArgumentException 方法接受到非法参数
ClassCastException 对象强制类型转换出错
NumberFormatException 数字格式转换异常
四、直接上代码实例:
1、try
{
//有可能出现的异常的语句
}catch(异常类 异常对象)
{
//编写异常的处理语句
}
finally{
//一定会运行到的程序块。
}
当然也是会有多个异常同时处理的,如下代码(代码仅为 了理解)
int i=10;
int j=0;
try{
int temp=i/j;
System.out.println("两个数字相除的结果:"+temp);
}catch(ArithmeticException e){
System.out.println("出现了异常:"+e);
}catch(NumberFormatException e){
System.out.println("数字转换异常:"+e);
//这是为了检测用的,其实真正的程序员都用的是
//e.printStackTrace();
}
finally{
System.out.println("不管是否出现异常,都执行此代码");
}
还有很多关于异常处理的语句使用,在我们的课本上没有讲解太多的,有兴趣的可以看一下下面这篇文章:java异常处理总结
注意:如果不想一个个列出来异常的详细情况,可以直接
~~catch(Exveption e)
{
e.printStackTrace();
}~~
但对于一个程序员来说,最好是分别进行捕获,所以忘记刚才我说了什么,你没有不想。
2、throws和throw关键字
使用throws声明的方法表示此方法不处理异常,而交给方法的调用处进行处理。
public int div(int i,int j) throws Exception{
int temp=i/j;
return temp;
}
注意:不要再主方法中使用throws关键字。
与throws不同,可以直接使用throw关键字人为的抛出一个异常,抛出时直接抛出异常类的实例化对象即可。详细的操作可以参考课本
try{
throw new Exception("自己抛出来的异常");
}catch(Exception e){
e.printStackTrace();
}
3、自定义异常类
class MyException extends Exception{
public MyException(String msg) {
super(msg);
}
public static void main(String[] args) {
// TODO 自动生成的方法存根
try {
throw new MyException("自定义异常。");
}catch(Exception e) {
System.out.println(e);
}

4、断言
assert boolean 表达式;
assert boolean 表达式:详细的信息
public static void main(String[] args) {
// TODO 自动生成的方法存根
int x[]= {1,2,3};
assert x.length==0:"数组长度不为0";
在开发中不提倡使用断言。

840

被折叠的 条评论
为什么被折叠?



