第七章异常的基本概念,只有仅仅简单的两节,但是内容挺多的,需要细细品味,尽量明白弄懂其中的例子以及需要记住的知识点。
一:什么是异常?
异常是导致程序中断运行的一种指令流。
二:异常的处理格式:
try{
//有可能出现异常的语句
}catch(异常类 异常对象){
//编写异常处理语句
}...}
[finally{
一定会运行到的程序代码
}]
三:异常类的继承结构
在整个java的异常结构中,实际中有以下的两个最长用的类:Exception和error类,都是Throwable的子类
Exception:一般表示的是程序中出现的问题,可以直接使用try...catch处理
Error:一般指的是JVM错误,程序中无法处理
四:异常的处理机制
步骤:一旦产生异常,则首先会产生一个异常类的实例化对象
在try语句中对此异常对象进行捕捉
产生的异常对象与catch语句中的各个异常类型进行匹配。如果匹配成功,则执行catch语句中的代码
public class ExceptionDemo01{ public static void main(String args[]){ System.out.println("*****计算开始"); int i=0; int j=0; try{ String str1=args[0]; String str2=args[1]; i=Integer.parseInt(str1); j=Integer.parseInt(str2); int temp=i/j; System.out.println("两个数相除的结果"+temp); System.out.println("------------"); }catch(Exception e){ System.out.println("其他异常"+e); } System.out.println("******计算结果"); } }五:throw关键字以及throws关键字
使用throws关键字表示此方法不处理异常,而交给方法的调用处进行处理
throw可以抛出一个异常。抛出异常类的实例化对象即可。
class Math{ public int div(int i,int j) throws Exception{ // 定义除法操作,如果有异常,则交给被调用处处理 int temp = i / j ; // 计算,但是此处有可能出现异常 return temp ; } }; public class ThrowsDemo01{ public static void main(String args[]){ Math m = new Math() ; // 实例化Math类对象 try{ System.out.println("除法操作:" + m.div(10,2)) ; }catch(Exception e){ e.printStackTrace() ; // 打印异常 } } };六:自定义异常类:
只需要继承Exception就可以
class MyException extends Exception{//自定义异常类,继承exception类 public MyExcepttion(String msg){ super(msg); } } public class DefaultException{ public static void main(String args[]){ tyr{ throw new MyException("自定义异常";); }catch(Exception e){ System.out.println(e); } } }
七:断言
public class Test{ public static void main(String args[]){ int x[] = {1,2,3} ; // 定义数组,长度为3 assert x.length==0 : "数组长度不为0" ; // 此处断言数组的长度为0 } };
这一章的内容大概就这些,异常的处理是java中不可缺少的机制,所以需要需要反复深入。