异常:异常的分类;获取异常及处理;抛出异常
Posted AnswerTheQuestion
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了异常:异常的分类;获取异常及处理;抛出异常相关的知识,希望对你有一定的参考价值。
Throwable是所有异常当然超类!该类的两个直接子类是Error和Exception。
Eroor:JAVA运行时的内部错误以及资源耗尽错误,很难恢复!
Exception:可以简单分为两类:1.RuntimeException:运行异常;2.非RuntimeException:由环境因素导致的;
异常的处理以及获取异常:
try{
在这里面放入可能出错的函数
}catch(Exception e){
处理方法
}finally{
无论是否出错都会执行此代码
}
在catch中我们一般会写Exception捕获所有异常
当try中出现异常后,代码会立即执行catch中的代码,在这里如果要打印异常信息的话,我们会调用e.getMassage();或者直接调用e.printStackTrace()方法,此方法直接打印异常
例1:当输入的是字符串或者出入的是0时,都会出现异常。所以在调用ShuRu方法是必须try{}catch{};如果不想try{}catch{}的话,就必须要在之前声明一下抛出此异常(throws Exception),然后谁调用这个方法谁来处理!
package com.inba.maya.huoquyichang; import java.util.*; public class HuoQuYiChang { public static void main1(String[] args){ HuoQuYiChang h=new HuoQuYiChang(); try{ h.ShuRu(); }catch(Exception e){ System.out.println(e.getMessage()); } } public void ShuRu() throws Exception{ System.out.println("请输入:"); Scanner sc=new Scanner(System.in); String s=sc.nextLine(); int num=Integer.parseInt(s); double z=100/num; System.out.println(z); } }
例2:
package com.inba.maya.huoquyichang; import java.util.*; public class HuoQuYiChang { public static void main2(String[] args){ int num=0; System.out.println("请输入:"); try{ Scanner sc=new Scanner(System.in); String s=sc.nextLine(); num=Integer.parseInt(s); }catch(Exception e){ System.out.println("输入的必须是数字 "+e.getMessage()); throw e; } double z; try{ z=100/num; }catch(Exception e){ System.out.println("输入的不能是0 "+e.getMessage()); } } }
异常使用的原则:
1.不要过多的使用异常,这样会见中系统的负担。
2.在方法中使用try{}catch{}语句块捕获异常时,必须要对异常做处理。
3.try{}catch{}语句块的范围不要太大,这样不利于对异常的分析。
4.一个方法被覆盖时,覆盖它的方法必须抛出相同的异常或者子异常
以上是关于异常:异常的分类;获取异常及处理;抛出异常的主要内容,如果未能解决你的问题,请参考以下文章