本文实例为大家分享了Java异常处理的具体代码,供大家参考,具体内容如下
<强>一。异常的分类强>
1。由Java虚拟机抛出的异常(错误):程序无法处理的问题,用户不用去进行处理(虚拟机错误丶内存溢出错误丶线程死锁)
2.异常异常:程序本身可以进行处理的异常
1)。非检查异常(未经检查的异常):编译器不需要强制处理的异常(空指针异常丶数组下标越界异常丶算数异常丶类型转换异常)
2)。检查异常(受控异常):编译器需要强制处理的异常(IOException丶SQLException异常),
<强>二。异常处理的两种方法强>
1。通过尝试丶捕获和最后关键字在当前位置进行异常处理
公共静态void main (String []) { int和=0; 而(真){ {//试以两数相除除数不能为0进行举例 System.out.println(“请依次输入两个数值进行除法操作:”); 扫描仪扫描仪=new扫描仪(系统); Java int alt="学习笔记之异常处理">2。通过尝试丶抓住最后丶丶和抛扔扔出异常给函数调用者进行处理
公开课尝试{ 公共静态void main (String []) { 尝试{ 函数();//在函数调用者处对异常进行处理 }捕捉(异常e) { e.printStackTrace (); } } 静态void函数()抛出异常{//通过扔将异常进行抛出 System.out.println(“请输入一个数值进行判断:”); 扫描仪扫描仪=new扫描仪(系统); Java int alt="学习笔记之异常处理">3。自定义异常进行处理
类MyException扩展异常{//自定义异常,通过超级方法传递异常信息给父级 公共MyException () { 超级(“这是我自定义的异常”); } } 公开课尝试{ 公共静态void main (String []) { 尝试{ 函数(); }捕捉(MyException e) { e.printStackTrace (); } } 静态void函数()抛出MyException { System.out.println(“请输入一个数值进行判断:”); 扫描仪扫描仪=new扫描仪(系统); Java int alt="学习笔记之异常处理"><强>三。异常链强>
有的时候我们会在处理一个异常的时候抛出一个新的异常,也就是异常的嵌套,但是最后我们得到的异常信息却只有一个。
示例:
公开课尝试{ 公共静态void main (String []) { 尝试{ Function1 (); }捕捉(异常e) { e.printStackTrace (); } } 静态孔隙Function1()抛出异常{ 尝试{ Function2 (); }捕捉(异常e) { 抛出新的异常(); } } 静态孔隙Function2()抛出异常{ 尝试{ Function3 (); }捕捉(异常e) { 抛出新的异常(); } } 静态孔隙Function3()抛出异常{ 抛出新的异常(); } } >之前输入结果:
这样的话显示出的异常就只有一个了,那我们如果想让这条异常链中的所有异常信息全部输出该怎么办呢& # 63;方法很简单,我们在抛出异常的时候将异常对象也当作参数进行抛出就行了。
示例:
公开课尝试{ 公共静态void main (String []) { 尝试{ Function1 (); }捕捉(异常e) { e.printStackTrace (); } } 静态孔隙Function1()抛出异常{ 尝试{ Function2 (); }捕捉(异常e) { 抛出新的异常(“异常2”,e); } } 静态孔隙Function2()抛出异常{ 尝试{ Function3 (); }捕捉(异常e) { 抛出新的异常(“异常2”,e); } } 静态孔隙Function3()抛出异常{ 抛出新的异常(“异常3”); } } >之前运行结果:
Java中
到此,我们的异常便是描述完了。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
Java学习笔记之异常处理