写点什么

捕获异常 & 指令重塑

作者:Java高工P7
  • 2021 年 11 月 12 日
  • 本文字数:1627 字

    阅读完需:约 5 分钟

抛出异常:


二、 处理异常


[JAVA 语言如何进行异常处理,关键字:throws,throw,try,catch,finally 分别代表什么意义?](about:blank#JAVA%E8%AF%AD%E8%A8%80%E5%A6%82%E4%BD%95%E8%BF%9B%E8%A1%8C%E5%BC%82%E5%B8%B8%E5%A4%84%E7%90%86%EF%BC%8C%E5%85%B3%E9%94%AE%E5%AD%97%EF%BC%


【一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义】
浏览器打开:qq.cn.hn/FTf 免费领取
复制代码


9Athrows%2Cthrow%2Ctry%2Ccatch%2Cfinally%E5%88%86%E5%88%AB%E4%BB%A3%E8%A1%A8%E4%BB%80%E4%B9%88%E6%84%8F%E4%B9%89%EF%BC%9F "JAVA 语言如何进行异常处理,关键字:throws,throw,try,catch,finally 分别代表什么意义?")


三、异常处理运用例题


code演示:




一、异常



异常的概念:

异常是指程序运行过程中发生的一些不正常事件(如除 0 溢出,数组下标越界,所要读取的文件不存在)

抛出异常:

Java 程序的执行过程中如果出现异常事件,可以生成一个异常类对象,该对象封装了异常事件的信息,并将其提交给 Java 运行系统,这个过程称为抛出异常,不处理的话会直接导致程序中断。



二、 处理异常



JAVA 语言如何进行异常处理,关键字:throws,throw,try,catch,finally 分别代表什么意义?

Java 通过面向对象的方法进行异常处理,把各种不同的异常进行分类,并提供了良好的接口。


在 Java 中,每个异常都是一个对象,它是 Throwable 类或其子类的实例。当一个方法出现异常后便抛出一个异常对象,该对象中包含有异常信息,调用这个对象的方法可以捕获到这个异常并可以对其进行处理。


Java 的异常处理是通过 5 个关键词来实现的:try、catch、throw、throws 和 finally。一般情况下是用 try 来执行一段程序,如果出现异常,系统会抛出(throws)一个异常,这时候你可以通过它的类型来捕捉(catch)它,或最后(finally)由缺省处理器来处理;


try 用来指定一块预防所有“异常”的程序;


catch 子句紧跟在 try 块后面,用来指定你想要捕捉的“异常”的类型;


throw 语句用来明确地抛出一个“异常”;


throws 用来标明一个成员函数可能抛出的各种“异常”;


Finally 为确保一段代码不管发生什么“异常”都被执行一段代码;


三、异常处理运用例题



code 演示:

题目:


/


编写一个计算 N 个整数平均值的程序。程序应该提示用户输入 N 的值,如何必须输入所有 N 个数。如果用户输入的值是一个负数,则应该抛出一个异常并捕获,提示“N 必须是正数或者 0”。并提示用户再次输入该数


*/


效果如图:


--------------------------


要计算几个整数的平均值呢:


5


请输入第 1 个数


50


请输入第 2 个数


60


请输入第 3 个数


80


请输入第 4 个数


90


请输入第 5 个数


100


一共 5 个数,和为:380,平均值为:76


----------------------------


要计算几个整数的平均值呢:


3


请输入第 1 个数


50


请输入第 2 个数


-15


N 必须是正数或者 0


请输入第 2 个数


0


请输入第 3 个数


-10


N 必须是正数或者 0


请输入第 3 个数


60


一共 3 个数,和为:110,平均值为:36


------------------------------


代码如下:


/*


首先我们需要创建一个异常子类,继承异常父类 Exception.构建无参有参方法


*/


public class mathException extends Exception{


public mathException(){}


public mathException(String message){


super(message);


}


}


/*


通过一个测试类,直接创建命令提示要求


*/


import java.util.Scanner;


public class Demo {


public static void main(String[] args) {


System.out.println("-----------------------------");


System.out.println("要计算几个整数的平均值呢:");


Scanner sc=new Scanner(System.in);


int i = sc.nextInt();


int sum=0;


int average=0;


for (int j = 0; j < i; j++) {


System.out.println("请输入第"+(j+1)+"个数");


int num=sc.nextInt();


//如果用户输入的值是一个负数,则应该抛出一个异常并捕获,提示“N 必须是正数或者 0”。并提示用户再次输入该数


if (num<0){


try {


throw new mathException("N 必须是正数或者 0");


} catch (Exception e) {


e.printStackTrace();


System.out.println("请重新输入第"+(j+1)+"个数");


num=sc.nextInt();


}


}


sum+=num;

用户头像

Java高工P7

关注

还未添加个人签名 2021.11.08 加入

还未添加个人简介

评论

发布
暂无评论
捕获异常&指令重塑