关于异常的介绍

110 篇文章 22 订阅

随时随地阅读更多技术实战干货,获取项目源码、学习资料,请关注源代码社区公众号(ydmsq666)

一、概念:
异常是描述出错信息的对象。错误:无法程序中捕获,不能处理。异常:可捕获,可处理。
try{
//代码块
}catch(Exception e){}
在catch后面,定义一个异常变量,用来接收在try块中抛出的异常对象。然后通过e.printStackTrace()
将对象中的异常信息打印出来。

二、分类:
编译期异常:要求用户必须处理的异常,如果不处理,无法通过编译。
运行期异常:用户可以处理可以不处理,所有运行期异常都是RuntimeException 的子类。

三、异常的执行顺序:
先执行try块的内容,顺序执行,如果有异常发生,马上执行catch块的内容;
同时终止try块的其他代码,无论是否有异常,finally都会执行

代码示例:

package cn;

import java.io.FileReader;
import java.util.Properties;

public class ExceptionTest {
	// throws 是方法修饰符,表示该方法有可能抛出某个异常,这时调用方就必须处理该异常。谁调用谁捕获。
	public static void test() throws Exception {
		Properties pro = new Properties();
		pro.load(new FileReader("  "));
	}

	public static void main(String[] args) {
		try {
			int x = 0;
			System.out.println("出现异常前的代码");
			int y = 10 / x;
			// throw new ArithmeticException(); //显示抛出异常对象,与上一句出现除零异常的代码效果一样
		} catch (java.lang.NullPointerException e) {
			e.printStackTrace();
			System.out.println("空指针异常");
		} catch (java.lang.ArithmeticException e) {// 一个try块中出现异常,就会找和最近异常类型匹配的catch块中。同时忽略其他的catch块。
			// 打印异常信息
			e.printStackTrace();
			System.out.println("除零错误");
		} catch (Exception e) {
			e.printStackTrace();
			System.out.println("其他异常");
		} finally {// 无论是否有异常都会执行的代码块,如果在try块或catch块中有return
			// 这时finally会在方法跳出前执行,finally一般用于资源清理工作,流的关闭,以及数据库的关闭
			// 只有在虚拟机关闭时(System.exit(0)),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、付费专栏及课程。

余额充值