异常处理:try-catch

04月19日 收藏 0 评论 2 java开发

异常处理:try-catch

转载声明:文章来源https://blog.csdn.net/Zzysq/article/details/112774214

目录:
①什么是异常
②异常处理的标准格式、语法
③try+catch的处理流程

 一、什么是异常?

异常是在程序中导致程序中断运行的一种指令流。
例如,现在有如下的操作代码:

public class ExceptionDemo01{
public static void main(String argsp[]){
int i = 10 ;
int j = 0 ;
System.out.println("============= 计算开始 =============") ;
int temp = i / j ; // 进行除法运算
System.out.println("temp = " + temp) ;
System.out.println("============= 计算结束 =============") ;
}
};

运行结果:

============= 计算开始 =============
Exception in thread “main” java.lang.ArithmeticException: / by zero
at ExceptionDemo01.main(ExceptionDemo01.java:6)

以上的代码在“int temp = i / j ;”位置处产生了异常,一旦产生异常之后,异 常之后的语句将不再执行了,所以现在的程序并没有正确的执行完毕之后就退出了。
那么,为了保证程序出现异常之后仍然可以正确的执行完毕,所以要采用异常的处理机制。

二、处理异常

如果要想对异常进行处理,则必须采用标准的处理格式,处理格式语法如下:

try{undefined
// 有可能发生异常的代码段
}catch(异常类型1 对象名1){undefined
// 异常的处理操作
}catch(异常类型2 对象名2){undefined
try+catch的处理流程
finally
异常体系结构
// 异常的处理操作
} …
finally{undefined
// 异常的统一出口
}

try+catch的处理流程

1、 一旦产生异常,则系统会自动产生一个异常类的实例化对象。
2、 那么,此时如果异常发生在try语句,则会自动找到匹配的catch语句执行,如果没有在try语句中,则会将异常抛出.

三、try+catch的处理流程

所有的catch根据方法的参数匹配异常类的实例化对象,如果匹配成功,则表示由此catch进行处理。

举例不做异常处理的代码如下:

package com.kaikeba.hh;

import java.util.Scanner;

public class Demo6 {
public static void main(String[] args) {
hh();
}
public static void hh(){
Scanner input = new Scanner(System.in);
System.out.println("请输入一个数字");
int x = input.nextInt();
System.out.println("请再输入一个数字");
int y = input.nextInt();
System.out.println(x/y);
System.out.println("运算结束!");
}
}

当我们不做异常处理时,如果我们输入的除数,被除数不是整数时,会提示输入有问题的提示InputMismatchException.如果输入的除数为0时,会出现算术异常的错误。展示除数为0的运行结果显示图:

接着我们可以在输入之前就做异常处理:
代码如下:

import java.util.InputMismatchException;
import java.util.Scanner;

public class Demo6 {
public static void main(String[] args) {
hh();
}
public static void hh(){
try {
Scanner input = new Scanner(System.in);
System.out.println("请输入一个数字");
int x = input.nextInt();
System.out.println("请再输入一个数字");
int y = input.nextInt();
System.out.println(x/y);
System.out.println("运算结束!");
}catch (InputMismatchException e){
System.out.println("您好,只能输入数字!");
}catch (ArithmeticException e){
System.out.println("您好,除数不能为0!");
}

}
}

那么我们之前不论书的是字符还是除数为0,都会给我们做出处理结果:
这里以除数为0展示:

C 2条回复 评论
李子寒

哎呀,我居然把他看完了,谢谢大佬的文章

发表于 2023-03-03 22:00:00
0 0
上帝之手028

怎么没能早点看到你这篇文章呢

发表于 2023-01-01 22:00:00
0 0