什么是异常
比如你使用java程序开发了一个计算器,可以让用户进行计算,但是在计算除法的过程中(程序运行过程中),用户把除数设为0, 这时我们的程序执行就会出错(大家都读过小学,知道除法中,除数不能为0),即抛出异常。异常情况是指程序在运行时,可能由与外部系统的条件变更(与我们一厢情愿所设想的不一设)而导致程序可能会出错的情况,如我们的代码要连结数据库,但数据库未启动,要创建目录,操作系统上却己存在同名的真实文件;即所谓异常是指可能(仅是可能)由与外部系统的,导致程序可能出错(中断运行)的原因。本程序在编译的时候是不会有异常的而是会在运行中发现异常,下面我们就要来处理这个异常
处理方式
try-catch
网上流传这样一个笑话:世界上最真情的相依,是你在try我在catch。无论你发神马脾气,我都默默承受,静静处理。对于初学者来说处理异常就是try…catch, try…catch确实是用的最多也是最实用的。
代码演示
public class TestException {
public static void main(String[] args) {
try{//放的是可能会出现异常的代码
Scanner input = new Scanner(System.in);
System.out.println("请输入被除数:");
int num1 = input.nextInt();
System.out.println("请输入除数:");
int num2 = input.nextInt();
System.out.println("计算结果如下:");
System.out.println(num1+"/"+num2+"="+(num1/num2));
System.out.println("========程序结束!!!!=============");
}catch(ArithmeticException e){ //catch是捕获异常,并进行处理
//
e.printStackTrace();//可以在控制台打印详细的异常信息,在开发阶段使用,便于调试代码
//异常的处理,我们简单输出一句话,但是在真实的项目中,不能只是输出一句话,而是要做相应的处理
System.out.println("除数不能为");
throw 与throws
我们编写代码的时候当自己知道会发生一些错误的时候我们就可以使用throw和throws来说明异常
首先要在方法中使用throws定义一个异常类代码如下
//定义一个除法的方法,并声明异常
public int division(int num1 ,int num2) throws ArithmeticException
if(num2 == 0){
//抛出异常,如果抛出异常,则抛出异常后面的代码不会执行
throw new ArithmeticException("除数不能为0");
}
return num1/num2;
}
在抛出后除法也不会再进行了。
总结
本次对异常的学习是一个新的探索,当除法中出现了0我们就可以使用异常来进行解决。其他的一些方式比如说这个问题无法解决的时候又想代码先跑起来就可以抛出这个异常来检测自己的程序是否合格。