JavaSE——异常处理

本文详细介绍了Java中的异常处理,包括异常的分类、Java异常的继承关系以及如何进行异常处理。内容涉及try-catch-finally关键字的使用、多catch匹配、finally语句的特点,以及throw和throws的区别。此外,还讲解了如何自定义异常类。
摘要由CSDN通过智能技术生成

异常处理

Java的异常

指的是程序运行过程中,因为用户的误操作、代码的BUG等等一系列原因,引起的程序奔溃的现象,被称为异常。

在计算机程序运行的过程中,总是会出现各种各样的错误。
有一些错误是用户造成的,比如,希望用户输入一个 int 类型的年龄,但是用户的输入是 abc ,这时程序就会报错;

// 假设用户输入了abc: 
String s = "abc";
int n = Integer.parseInt(s); // NumberFormatException!

还有一些错误是随机出现,并且永远不可能避免的。比如:

  • 网络突然断了,连接不到远程服务器;
  • 内存耗尽,程序崩溃了;
  • 用户点“打印”,但根本没有打印机;

……
所以,一个健壮的程序必须处理各种各样的错误。
所谓错误,就是程序调用某个函数的时候,如果失败了,就表示出错。

异常的分类

异常可以分为编译型异常和运行时异常。

编译型异常:在源码编译阶段,直接抛出异常,这种异常必须要处理。不处理,就无法正常运行代码。

运行时异常:在代码运行时,有可能出现的异常,被称为运行时异常

java中异常的继承关系

在这里插入图片描述

Throwable				异常的顶级类

		-->	Error				致命性的错误,是程序无法处理的错误,表示运行应用程序中较严重问题。
		
		-->	Exception			常见的异常的父类,是程序本身可以处理的异常。
			-->	RuntimeException	运行时异常,只有运行时,才有可能出现异常
		
			其他的Exception的子类都是编译型异常,必须处理。

异常处理

Java的异常处理是通过5个关键字来实现的:try、catch、throw、throws和finally。一般情况下是用try来执行一段程序,如果出现异常,系统会抛出(throws)一个异常,这时可以通过其类型来捕获(catch)它,或最后(finally)由默认处理器来处理。

解决掉异常的现象,让程序继续运行(不要奔溃退出)下去。
程序容错能力提升!!!!程序就会越稳定!!!

抓捕异常

——针对于可能出现异常的代码,进行抓捕

异常处理的核心是try和catch,这两个关键字要一起使用。当try代码块发生异常并抛出一个异常是,异常会由相应的catch语句捕获并处理。只有在有异常抛出时,才会执行catch语句。

语法格式为:

try {
   
	// 可能发生异常的代码

} catch (Exception e) {
   //捕获的异常类型异常对象名
	// 如果出现了一次,代码会立刻进入catch中
	// 在这儿解决抓捕到的异常
} 

如果使用抓捕异常,通过这种处理,程序即便是遇到了,也不奔溃!!!

例如:

public class Test01{
   
	public static void main(String[] args) {
   
		int i,a;
		try {
                                //监视可能发生异常的代码块
			i=0;
			a=36/i;
		}catch(ArithmeticException e) {
      //捕获一个被零除异常 
			System.out.print("除数为零");
		}
	}
}

在这里插入图片描述

多个catch子句

可以使用多个 catch 语句,每个 catch 分别捕获对应的 Exception 及其子类。JVM在捕获到异
常后,会从上到下匹配 catch 语句,匹配到某个 catch 后,执行 catch 代码块,然后不再 继续匹
配。

简单地说就是:多个 catch 语句只有一个能被执行

注:范围大的异常要放在后面,否则就会报错!!!

try{
   
        //可能发生异常的代码块
}catch(异常类型1 异常对象名1){
   
        //异常处理代码块1
}
catch(异常类型2 异常对象名2){
   
        //异常处理代码块2
}
..
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值