一、JAVA的异常学习

专升本了,工作辞了,进了一所民办的院校,有JAVA的课程,但是因为时间没有合理的安排导致上课没听什么课,考试前又没复习,作业也没交两个,本来做好了补考的打算,但是神奇的是,我JAVA过了,考虑到下个学期有和JAVA相关的课程,在浪了半个月的情况下,这个寒假开始学JAVA,打卡第一天。时间:2022年1月16日

任务待办:

1、学习JAVA

2、通过3月份的计算机4级考

3、通过3月份的计算机2级考

4、预习下个学期的课程


 正文


 

异常学习所需要的两个包:

import java.util.InputMismatchException;      //此包在这里的用处是创建一个用来保存错误消息的字符串的引用
import java.util.Scanner;          //这个包是Scanner类所用到的包


 

什么是异常?

程序运行中发生的时间,该事件可以中断程序指令的正常执行流程


 

遇到异常的处理机制:

1、JAVA程序运行时出现问题,系统会自动检测到该错误,并立即生成一个与该错误对应的异常对象
2、异常对象提交给JAVA虚拟机
3、JAVA虚拟机会自动寻找相应的处理代码来处理这个异常
    如果没有找到,则JAVA虚拟机做一些简单的处理后,程序被强行终止
4、程序员可以编写代码来捕捉可能出现的异常,并编写代码来处理相应的异常


 

普通代码:

public class Exception {
    public static void main(String[] args) {
        int i;
        Scanner sc = new Scanner(System.in);  //和C语言不同,scanf并没有被继承过来,取而代之的是一个Scanner
  // 在new对象的时候,其构造方法需要一个参数,这里是System.in的参数,这是系统输入的意思,可以理解为读取用户从键盘的输入
        i = sc.nextInt();               //调用方法 nextInt() 代表将输入的值标记为int类型
        System.out.print(i);           

//问题:如果我们输入的值是非数字的值,报错怎么办?


/*

使用try catch语句

语句的执行流程:

1、如果try内的的代码出现异常则中断执行(从出现异常的那行/段代码开始)

2、执行对应的catch块内的代码(如果异常的类型是catch括号中的类型)

3、继续执行try catch语句结构之后的代码

代码的写法:

try catch;  //自己处理异常

try{

(可能出现异常的代码)

}catch(异常的类名1 变量名A){

(如果出现了异常类中的异常,则执行该段的代码)  //catch可以有多个

}catch(异常的类名2 变量名B){

(如果出现了异常类中的异常,则执行该段的代码)

}finally{

(最终肯定必须要执行的代码)  

}

*/
        try                
        {                 
           i = sc.nextInt();          
           System.out.print(i);        
        }                 
        catch(InputMismatchException e)      //如果出现了InputMismatchException类型的异常,则执行下面{}中的代码
        {
            System.out.printf("输入数据不合法");
        }
    }
}

 /*

注意事项:

1、如果catch内的异常类存在子父类的关系,子类应该在前,父类在后

2、如果finally中有return语句,那么最后返回的结果肯定以finally中的返回值为准

3、如果finally语句中有return,那么没有被处理的异常会被吞掉(说实话这三点不是很理解,等有一天理解了再回来填坑吧)

*/


 问题:那我们为什么不能用 if else来处理异常呢?

程序出现的问题是无法通过逻辑判断来解决的,JAVA提供的异常处理机制可以解决逻辑判断所无法处理的问题

 

 

 

人类前进的步伐怎能止步于此?

参考文献:

https://blog.csdn.net/qq_34427165/article/details/83929470

https://blog.csdn.net/wanghuiwei888/article/details/78818203

https://www.bilibili.com/video/BV1ps411F7Sn?p=49

上一篇:Linux


下一篇:Pell方程及其一般形式