P3-11 异常

异常


什么是异常

  • 1、异常是程序执行过程中出现的“意外”情况。
    • 但异常不是bug哦
  • 2、异常我们肯定不陌生
    • 比如:数组访问越界、Integer.parseInt()失败、读取不存在的文件等
    • 异常1
  • 3、异常可以让程序出现意外情况的时候立即通知调用者
    • 遇到异常的时候,程序也会在异常点停止,以免造成进一步的破坏
    • 可以和C语言或Go语言的错误码等实现方式比较

Java异常

  • 1、Java中的异常是一种特殊的类,他们直接或者间接继承自Throwable

    • Throwable
    • 直接或者间接继承自RuntimeException的异常叫做“运行时异常”,属于非检查异常
    • RuntimeException
    • 其他所有的异常叫做“检查异常”,属于非运行时异常
  • 2、一个方法上可以通过throws关键字说明这个方法可能会抛出哪些异常(了解即可)

    • 声明异常1
    • 调用这个方法的代码要么catch(抓住)这些异常,要么继续声明throws
  • 3、调用一个声明throws非RuntimeException的方法,必须对异常做处理:要么catch,要么继续throws

    • 怎么去看非RuntimeException呢?
      • (可以从错误的继承链中看看是否能找到RuntimeException)
    • IDEA提供的快捷写的模板只能是printStacktrace,这不是一个好习惯,不建议用它默认写的这个报错。2024的IDEA模板改成了throw new RuntimeException(e),非常不错
    • IDEA的快捷方式catch
      • catch
    • IDEA的快捷方式throws
      • throws
  • 4、对于初学者,如果不知道如何处理的话,就throw new RuntimeException(e);

1
2
3
4
5
6
7
try 
{
FileInputStream fis =new FileInputStream("d:/1.txt");
} catch (FileNotFoundException e)
{
throw new RuntimeException(e);//用这个去处理
}
  • 5、杨中科封装的库,很多地方就是把检查异常catch住,然后重新抛成RuntimeException了
  • 6、可以自己catch处理的地方
    • 比如:检测用户输入的是否是合法的整数,就可以用catch住Integer.parseInt()的异常。
1
2
3
4
5
6
7
8
9
10
String s="1b2";
try
{
int i =Integer.parseInt(s);//字符串转换成int
System.out.println(i);
}
catch(NumberFormatException e)
{
System.out.println("不是合法的整数");
}

P3-11 异常
http://example.com/2024/08/12/SE101-零基础玩Java/Part3-笔记/P3-11 异常/
Author
John Doe
Posted on
August 12, 2024
Licensed under