JAVA学习笔记three:异常

来源:互联网 发布:nginx下载windows 编辑:程序博客网 时间:2024/06/14 18:13


  我们生活中经常会遇到一些异常,比如天气下雨后上课迟到,这不是主观产生的,在JAVA中也会因为硬件或代码等产生异常,它们在平常可能是对的,但是偶尔也会出现异常现象,就像看天气预报可能下雨带伞一样,代码可能出现异常,我们可以通过编程处理它。JAVA中异常体系可以表示如下:

受检异常在编译时就会产生异常,无法运行,例如robot类实例化时就会产生受检异常,同时非受检异常运行时才会产生异常,我们一般对非受检异常也并不会进行异常处理,一般都能在代码中修改消除。

    在JAVA当中的异常处理可以通过以下方式来实现:

try{//可能出现异常的代码部分 }catch(异常类型 异常变量){//执行异常操作 }catch(异常类型 异常变量){ //执行异常操作 }… finally{    //处理完try与catch操作后的收尾操作,异常统一出口 } 

  •     try的意思就是我们可以先试着运行一下,产生异常并进行捕捉,捕捉到异常,执行异常类型相对应的操作,如果没有进行捕捉或者捕捉到的异常没有相对应的类型,则程序将会报错退出,系统报告在控制台。
  •     在JAVA机制中,一旦产生异常,系统就会自动生成一个异常实例化对象,通过这个对象我们可以对异常进行操作
  •     所有异常根据catch方法参数进行匹配异常的实例化对象,如果匹配成功,则由匹配成功的catch语句进行处理。
注意:
  1. catch定义,由上到下,异常范围必须由小到大或者同级别的,否则eclipse就会报错,因为下面的异常总不会运行。
  2. 运行时异常,catch中可以随意定义类型,程序运行时,会根据catch参数自动匹配。
  3. 非运行时异常,则catch中定义的异常,在try代码块中必须存在,如果没有类似异常存在,则不允许被定义。
finally关键字:
在进行异常处理之后,在异常的处理格式中还有一个finally语句,name此语句将作为异常的统一出口,不管是否产生异常, 最终都要执行此段代码
throw与throws关键字:
  • Throws关键字主要在方法的声明上使用,表示方法中不处理异常,而交给调用处处理。实际上对于java程序来讲, 如果没有加入任何的异常处理,默认有jvm进行异常的处理操作
  • Throw关键字表示在程序中手动抛出一个异常,因此从异常处理机制上看,所有的异常一旦产生后,实际上抛出的就是一个异常的实例化对象, name此对象也可以有throw直接抛出
注意:运行时异常,在程序中捕捉并throw后,方法中不一定要声明throws,而非运行时异常,在代码快中throw后,必须在方法中声明throws抛出异常

异常处理规则:
1.try语句不能单独存在,可以和catch、finally组成的try…catch、try…catch…finally、try…finally三种结构,catch语句可以有一个或者多个,但是try、catch、finally不能单独存在。
2.try、catch、finally三个代码块中的语句变量独立存在,不能相互访问。
3.多个catch语句,java虚拟机会自动匹配其中一个异常或者异常子类,就执行这个catch块中代码,并且不会再执行其他catch块中的代码.。
测试例子:
public class Test {JFrame jf;public static void main(String[] args) throws AWTException{Test t = new Test();int v = t.div(20,0);System.out.println(v);}/** * 做除法操作 */public int div(int a,int b) throws AWTException{////会不会有异常情况出现???//jf.setVisible(true);//会不会有异常情况出现???可能会有异常:除数为0int result = 0;try{jf.setVisible(true);result = a/b;}catch(ArithmeticException e){throw new ArithmeticException();}catch(NullPointerException e){e.printStackTrace();}finally{//必须(一定)会执行System.out.println("执行了finally内容");}try {Robot robot = new Robot();} catch (AWTException e) {throw new AWTException("异常问题");}//////ArithmeticException是运行时异常////AWTException是检测性异常////System.out.println("后续的代碼");return result;}}
 



  

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 房产共有人去世怎么办 发现邪教宣传内容怎么办 说课时两个课时怎么办 投稿文章被拒绝怎么办 中立性细胞偏低怎么办? 孩子爱告状老师怎么办 高中学不好数学怎么办 想做老师应该怎么办 教师职称换学校怎么办 大四差选修学分怎么办 尔雅通识课学分没修满怎么办 大学全英文授课怎么办 小孩脑部有囊肿怎么办 防震期间门应该怎么办 在家待着没意思怎么办 人户分离上学怎么办 小孩上学没人接送怎么办 宝宝上学没人接送怎么办 上海浦东新区酒类许可证怎么办 金税盘里报税处理打不开怎么办 惠民卡到期了怎么办 遇到不拴狗链的主人怎么办 平安福没钱续保怎么办 提前很久到机场怎么办 机场来早了怎么办 机场去早了怎么办 只有高中学历该怎么办 没钱没学历该怎么办 中招分数压线怎么办 两岁宝宝蛀牙怎么办 大学必修课差一分怎么办 好医生差两分怎么办 万丽酒店怎么办会员 银行放款慢 业主怎么办 错过了毕业申请怎么办 初中生字写不好怎么办 对口升学没考上怎么办 天生喝不了酒怎么办 王者荣耀乱举报怎么办 易班考试不及格怎么办 易学习忘记密码怎么办