天天看点

基本任务1.4java异常捕捉机制Java异常捕捉机制

Java异常捕捉机制

任务要求:

一、完成一个 java application应用程序,完成c=a/b 的计算并输出c的结果,可以为a和b在程序中赋初值、或者接收用户通过键盘输入a和b的数值文本后转换为数字等,在程序要求当 b 为0时c的计算结果正确。

二、完成一个 java application应用程序,完成一个计算绝对值表达式 |a-b|的功能。要求当b比a大时人为抛出一个自定义异常,在计算绝对值时通过异常捕捉机制完成此绝对值表达式的计算。

任务一代码:

import java.util.Scanner;//导入扫描器
public class yichangchuli {   //类名
	public static void main(String[] args){//main函数
		int a=0, b=0, c=0;               //定义变量a,b,c用于存放数据
        while(true){       	             //循环体,用于多次输入输出
        	System.out.println("请输入a,b:");//输出文字提示
        	Scanner s1 = new Scanner(System.in);//创建扫描器对象用于接收键盘输入的数字
        	a = s1.nextInt();                   //将接收到的值赋予a变量
        	Scanner s2 = new Scanner(System.in);
        	b = s2.nextInt();
        	try{                                //try catch异常捕捉语句
        		System.out.println(c=a/b);      //这里放置可能存在异常的语句
        	}  
        	catch(ArithmeticException e){       //异常的类型以及异常对象
        		System.out.println("除数不能为零,请重新输入:");//对出现异常时经行的处理语句
        	} 
        	} 
			}
}
           

运行结果:

基本任务1.4java异常捕捉机制Java异常捕捉机制

任务二:

这里需要用到自定义异常的处理方式,先介绍一下throws和throw的区别以及用法:

throws

  • 用在方法声明后面,然后跟异常类名
  • 表示抛出异常,由该方法的调用者来处理
  • 表示出现异常的一种可能性,并不一定会出现这些异常

throw

  • 用在方法体内,后面跟的是异常对象名
  • 表示抛出异常,由方法体内的语句进行处理
  • 执行throw一定抛出了某种异常

代码:

自定义异常类:

package customize;//包名
public class MyException extends Exception {//自定义异常类
	public MyException() {                 //构造方法
	}
	public MyException(String message) {   //有参构造方法
		super(message);                    //super传递参数
	}
}
           

异常处理类:

package customize;//包名
public class yichang {//yichang类
	public void  check(int c) throws MyException{//check方法体
		if(c<0) {
			throw new MyException("|a-b|="+(-c));//if语句判断是否抛出异常		
		}else {
			System.out.println("|a-b|="+c);//输出语句
		}
	}
}
           

main函数:

package customize;//包名
import java.util.Scanner;//导入扫描器
public class customize {//类名
	public static void main(String[] args) {//main函数体
		Scanner sc = new Scanner(System.in);//新建扫描器对象
		System.out.println("请输入a,b的值");   //输出提示文字
		int a = sc.nextInt();              //接收键盘输入的数字
		int b = sc.nextInt();              //接收键盘输入的数字
		int c = a-b;                       //定义c的计算公式
		yichang t = new yichang();         //创建yichang类的对象
		try {                              //异常捕捉
			 t.check(c);                   //调用check异常处理方法
		} catch (MyException e) {          //
			System.out.print(e);           //输出异常结果
		}
	}
}
           

运行结果:

基本任务1.4java异常捕捉机制Java异常捕捉机制
基本任务1.4java异常捕捉机制Java异常捕捉机制

继续阅读