Java异常处理
2021/9/5 22:08:27
本文主要是介绍Java异常处理,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
一、异常的判断
1、异常 发生时,若不处理,则无法完成完整程序的运行。
当用户输入的x 、y (不为零)是数字的时候,那么整个程序是可以正常运行的。但是用户如果输入的不是数字,或者y为零的时候那么程序就会报错,中断运行。这就是其中一种异常。
public static void main(String[] args){ test(); } private static void test() { 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); } }
且会提示错误的原因。
二、当异常发生时的处理方法
1、使用 try {
// 可能发生异常的程序代码
} catch(捕获异常发生的类型){
// 采取的措施
} finally{
//异常程序的统一出口(无论程序是否发生异常。只要非强制中断程序,则必 然执行)
}
注意事项:1.不能单独使用catch。
2.catch和finally可以只保留其中一个
import java.util.InputMismatchException; import java.util.Scanner; public class Test1 { public static void main(String[] args){ test(); } public static int test() { 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 x){ System.out.println("必须输入数字啊."); return test(); //捕捉到异常,要让程序正常运行下去,则重新调用test(); }catch(ArithmeticException x){ System.out.println("除数不能为0啊."); return test(); } return 0; } }
2、使用throws/throw解决异常
1、代码在没运行时就显示异常,则用throws声明(即将异常抛出)
例:定时关机的一个程序。若不将异常抛出则无法运行程序。
public class test1 { public static void main(String[] args) { Runtime.getRuntime().exec("shutdown -s -t 3600"); } } //上面的程序无法执行,可以将可能发生的异常抛出去 public class test1 { public static void main(String[] args) throws IOException{ Runtime.getRuntime().exec("shutdown -s -t 3600"); } } //将可能发生的IOException异常抛出
2、在异常发生的代码后抛出异常。
抛出一个 RuntimeException异常对象,必须捕获或抛给调用者
if(age<0 || age>180){ //设置一个异常 RuntimeException e = new RuntimeException("年龄不合理"); throw e;//将异常抛出且声明错误原因是年龄不合理 }else{ this.age = age; }
这篇关于Java异常处理的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-28MQ底层原理资料详解:新手入门教程
- 2024-11-28MQ项目开发资料详解:新手入门教程
- 2024-11-28MQ项目开发资料详解:入门与初级用户指南
- 2024-11-28MQ消息队列资料入门教程
- 2024-11-28MQ消息队列资料:新手入门详解
- 2024-11-28MQ消息中间件资料详解与应用教程
- 2024-11-28MQ消息中间件资料入门教程
- 2024-11-28MQ源码资料详解与入门教程
- 2024-11-28MQ源码资料入门教程
- 2024-11-28RocketMQ底层原理资料详解