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

el/2024/7/13 12:42:18

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("除数不能为零,请重新输入:");//对出现异常时经行的处理语句} } }
}

运行结果:

在这里插入图片描述

任务二:

这里需要用到自定义异常的处理方式,先介绍一下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);           //输出异常结果}}
}

运行结果:

在这里插入图片描述
在这里插入图片描述


http://www.ngui.cc/el/3419328.html

相关文章

基本任务4.2WEB服务

任务要求&#xff1a; 一、学习Tomcat服务器的安装和配置&#xff0c;要求把其WEB根路径从默认值改为自定义的路径&#xff0c;要求把其WEB默认服务端口改为80。二、把基本任务4.1基本任务和挑战任务所完成的静态WEB页面放到WEB服务器根路径下&#xff0c;启动WEB服务器&#…

MySQL Server 5.5安装

MySQL数据库安装 一、下载安装包 网站&#xff1a;https://dev.mysql.com/downloads/installer/ 然后点击下载&#xff0c;也可以下载老版本。 二、安装 MySQL Server 5.5安装步骤如下&#xff1a;&#xff08;其余版本安装步骤略有不同&#xff09; 三、测试 在命令…

语音信号线性预测分析

语音信号线性预测分析 基本思想&#xff1a;一个语音取样的现在值可以用若干个语音取样过去值的加权线性组合来逼近&#xff08;最小均方误差&#xff09;。线性预测最重要的优势在于它可以较为精确地估计语音的参数&#xff0c;而这些极少的参数可以正确地表现语音信号的时域…

在vue中使用fastclick解决移动端300ms延时问题

第一步&#xff1a;安装插件 把fastclick这个包安装到项目的依赖之中&#xff0c;--save表示开发与上线都需要 npm install fastclick --save 第二步:在main.js中引入插件 import fastclick from fastclick 第三步:在body元素上使用插件 fastclick.attach(document.body)

如何实现洗牌算法?

day09 题目描述: 开发一款扑克游戏&#xff0c;需编写一套洗牌算法&#xff0c;公平的洗牌是将洗好的牌存储在一个整型数组里&#xff0c;每张牌被放在任何一个位置的概率是相等的. 解析: 定义一个洗牌函数&#xff0c;函数内用tmp数组存储1~54表示54张牌&#xff0c;然后对5…

球的反弹高度有多高?

day11 题目描述: 一球从100米高度自由落下&#xff0c;每次落地后反弹回原高度的一半&#xff0c;再落下。求它在第十次落地时&#xff0c;共经过多少米&#xff1f;第十次反弹多高&#xff1f; 解析: 设初始总高度为100米&#xff0c;球每次下落高度反弹回的高度为上一次的一…

如何找出1000以内的“完数“

day12 题目描述: 如果一个数恰好等于它的因子之和&#xff0c;这个数就称为"完数"&#xff0c;例如6123.编程找出1000以内的所有完数。 解析&#xff1a; 外层循环1000次&#xff0c;每次循环得到的i传入下个循环内&#xff0c;内部循环求解出符合i整除k等于0的数。…

如何在本地创建分支并推送到码云上

第一步: git branch 查看当前所在的分支&#xff0c;确保在master分支上 第二步: git checkout -b example 在当前分支上(也就是master分支)创建一个example分支&#xff0c;并切换到该分支上 第三步: git push -u or…

如何获取规定的排列组合?

day13 题目描述: 将一组数字&#xff0c;字母或符号进行排列&#xff0c;以得到不同的组合顺序&#xff0c;例如1&#xff0c;2&#xff0c;3这三个数的排列组合有:123,132,213,231,312,321. 解析&#xff1a; 可以使用递归将问题切割为较小的单元进行排列组合&#xff0c;如…

快速排序--C语言

一、快速排序算法&#xff08;Quicksort&#xff09; 1:定义&#xff1a; 快速排序由C. A. R. Hoare在1962年提出。快速排序是对冒泡排序的一种改进&#xff0c;采用了一种分治的策略。 2&#xff1a;基本思想&#xff1a; 通过一趟排序将要排序的数据分割成独立的两部分&#…