黑马程序员_异常处理学习笔记

来源:互联网 发布:西安程序员好找工作吗 编辑:程序博客网 时间:2024/05/29 17:55

-------android培训、java培训、期待与您交流! ----------

Java的异常处理机制可以概括为一种异常和异常处理模块(一段代码)之间的匹配机制(将产生异常的功能代码和处理异常的代码相分离【匹配】---try-catch-finally)。

具体的说,包括:

1、  Java将常见的异常均封装成类,并通过面向对象的方法来处理异常。允许用户自定义。

2、  【抛出异常】如果运行过程中出现了异常,就会生成代表异常的异常类实例并传递给jvm

3、  【捕捉异常】接到被抛出的异常后,jvm会自动查找处理异常的代码,如果找到,就交给代码处理;如果没找到就由jvm来处理,通常是显示异常的状态并终止程序的运行。

Throwable:Error + Exception

1、Error:不能靠改变程序的流程使程序恢复运行;这类错误由jvm负责抛出和捕获,应用程序本身不必对这类异常进行处理。

2、Exception:代表的错位是应用程序中可以捕获的异常状态,由应用程序抛出或处理。

(1)运行时异常(Runtime Exception):程序设计的逻辑不正确(区别语法错误),对编译系统来说具有不可预测性。

(2)非运行时异常(Non Runtime Exception):可控异常类:外部问题导致:语法错误:显式处理。

异常的捕获和处理

try关键字指明这些语句可能会出现问题,需要jvm对其进行【监控】

catch的参数类似于方法中的参数,包括“异常类型”和“异常对象变量名”

注意:由于在处理异常时只执行第一个相匹配的catch语句快,因此,程序中catch语句的排列顺序应该从具体到一般。子类的在父类的前。

finally是是否异常都要执行的。通常用来执行一些善后工作,如关闭文件,关闭数据库连接等

 

抛出异常

过程:当前方法出现了异常并且没有能捕获它的代码,或者现有的捕获代码无法捕获这个异常,则jvm就会终止当前方法并抛给上一级方法。。。。。直到捕获或者被抛给程序的调用者即jvm本身!

throws关键字在方法声明时使用;throw关键字在方法体内使用。

throws关键字在方法声明时使用:该方法可能会抛出异常,且该方法不处理这些异常,而是交给上一级处理。

throw关键字在方法体中使用,它强制抛出一个异常类的实例,且其后的语句都不再执行。


在try中写了return,后面又写了finally,是先执行return还是先执行fianlly?

package com.itheima;public class Test6 {public static void main(String args[]) {Test6 t = new Test6();//创建对象t.divide(0);//调用divide方法t.divide(1);//调用divide方法}public void divide (int i){int y = 10;//定义并初始化整形变量try{System.out.println("y="+y+" i="+i);int a = y/i;//计算y/i的值System.out.println("a="+a);//打印输出计算结果}catch (ArithmeticException e)//捕获异常{System.out.println("捕获ArithmeticException异常");e.printStackTrace();//追踪异常发生时执行的内容}finally{System.out.println("这是finally中的语句");}System.out.println("程序结束");}}



0 0
原创粉丝点击