超牛牪犇Java之异常处理

本文详细介绍了Java中的异常处理机制,包括异常的分类、处理流程及如何使用try...catch...finally语句来捕获和处理异常。同时,通过具体示例展示了不同类型的异常如何被捕获并妥善处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一.异常处理的流程

main函数处理中出现异常:

1.由自己(main函数)处理异常

2.由main的上级来处理

        main由JVM来调用(水调用的方法 谁就来处理异常)

这里的最终的异常是由JVM来处理的

JVM默认的处理异常方式

1.打印错误所在的位置

2.打印错误信息/by zero

3.停止你的程序

二.异常处理的类

 异常处理的类

 Throwable 所有异常的父类

     Error(系统崩溃 数据库崩溃) 

     Exception(异常)

  RuntimeException(运行时异常)

  异常发生如何解决

三.如何处理异常

 try...catch...finally

 try指的是要被测试的代码部分(有可能发生异常的代码)                                  

 catch指的是要捕获的异常

 finally指的是异常处理后要执行的代码

 多catch的处理异常

 由上至下进行匹配 匹配上一个剩下的catch都不走了

 catch捕获时 使用的类要由小到大

example:

public static void main(String[] args) {
		
	TestException testException = new TestException();
	try {
		//放可能发生异常的代码	
		System.out.println("hahahaha");
		int fun = testException.fun(10, 0);
		System.out.println(fun);
		System.out.println("hahahaha");
	}
	catch (ArithmeticException e) {
		//ArithmeticException e = new ArithmeticException(); 
		// 捕获异常对象(匹配这个异常对象)
		//捕获成功 会执行catch中的代码
		//程序不会被终止
		System.out.println("你除了0");			
	}catch (IndexOutOfBoundsException e) {
		System.out.println("越界异常");
	}catch (Exception e) {
		System.out.println("看我抓住了什么");
	}	
	System.out.println("11111111111111");
}
class TestException{
	//测试异常的发生
	public int fun(int a, int b) {
		//发生异常时
		//会创建一个 异常对象
		//new ArithmeticException("异常信息")
		//这时会把创建出来的异常对象返回
		//返回给他的上级去处理(谁调用这个方法 就给谁处理)
		//这个异常对象就返回给main函数了
		//main函数接到异常没处理 交给上级
		//JVM处理(打印错误信息)
		return a/b;
	}
}

finally

finally中的代码 一定会被执行

finally一般关闭资源 关闭数据库 关闭流

final finally finalize 之间的区别 : 三者之间无关系

final 修饰类 修饰方法 修饰变量

finally 异常处理中关键字 可以关闭资源 一定会被执行

finalize 是object类中的方法 是用来垃圾回收的 可以将内存中没有任何引用的垃圾空间 回收 系统调用

try {
	int num = 10/0;
    } catch (ArithmeticException e) {
	System.out.println("你除了0");
    }finally {
	System.out.println("我是finally中的语句");
}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值