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

------- 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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值