java中的异常

本文深入探讨Java中的异常处理机制,包括系统异常与非系统异常的区别,检查性异常与非检查性异常的分类,以及如何使用try、catch和finally语句进行有效的错误处理。

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

java中的异常

java中的系统异常机制

1、系统的异常:JVM中的错误
此类错误是无法修改代码来避免的,属于硬件错误。比如
StackOverFlow ,递归运行一万次不会出错误,但是总会在特定时间出现错误
2、非系统异常,可以通过修改代码修改

java中的异常分类

1、非检查性异常:
NullPointException
ArrayIndexOutOfException
这种属于运行时错误,编译时不会报错
2、检查性异常:
这种属于编译时报错,比如最简单的没有加分号,就会产生报错。或者
这就是常见的报错

异常报错的信息分析

1、可以通过系统跑出的异常提示,和输出System.out.println();添加到各个位置,判断错误
2、通过try或者catch,或者finally来改变。
这就是try和catch的用法
通过各种各样的抛出异常来解决

class A{
public static void main(String args[]){
Scanner read=new Scanner();
System.out.println(“请输入两个整数”);
int num1=read.nextInt();
int num2=read.nextInt();
int res=method(num1,num2);
}

public void method(int num1,int num2){
   int num3=num1/num2;
   System.out.println(num2);
   return num2;
   
}
}

这个时候就会有异常抛出,这是属于非检查性异常,程序到
int num3=num1/num2;就会停止,并不会执行到接下来的输出。
就像这个样子
此时我们就需要用到try和catch了
就比如

这样之后的运行结果就不一样了
在这里插入图片描述
finally{}的作用就是无论执行到哪里,finally中的程序一定会被执行
举个栗子,我们对代码进行一个小的修改

public class A {
	static //private static final Readable Integer = null;
	int num3;
	public static void main(String args[]){
		Scanner read=new Scanner(System.in);
		System.out.println("请输如两个整数");
		int num1=read.nextInt();
		int num2=read.nextInt();
		int res=method(num1,num2);
		}

		public static int method(int num1,int num2){
		 
			try{
			 num3=num1/num2;
			 
		   }catch(Exception e){
			   System.out.println("num3="+num3);
			   return num3;
		   }
			finally{
				System.out.println("我是finally");
			}
			System.out.println("已结束");
			return num2;
		}

}

运行的结果是在这里插入图片描述
如果我们把finally注释掉,结果就是
在这里插入图片描述
所以,我们可以看出,虽然结果已经在return num2处结束,但只要finally存在,就一定会执行。因此,我们一般会在finally中放入关闭输入的之类的程序,比如in.close();
ps:不要再try或catch中返回值。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值