文章目录

  • 1. 基本介绍
  • 2. 快速入门案例
  • 3. 注意事项和使用细节

1. 基本介绍

  1. 如果一个方法(中的语句执行时)可能生成某种异常,但是并不能确定如何处理这种异常,则此方法应显示地声明抛出异常,表明该方法将不对这些异常进行处理,而由该方法的调用者负责处理。
  2. 在方法声明中用throws语句可以声明抛出异常的列表,throws后面的异常类型可以是方法中产生的异常类型,也可以是它的父类。

2. 快速入门案例

解读:
1. 这里的异常是一个 FileNotFoundException,编译异常
2. 使用 try-catch-finally
3. 使用 throws ,抛出异常,让调用 f2 方法的调用者(方法)处理
4. throws后面的异常类型可以是方法中产生的异常类型,也可以是它的父类。
5. throws 关键字后也可以是 异常列表,即可以抛出多个异常
public class Throws {public static void main(String[] args) {}public void f2() throws FileNotFoundException {FileInputStream fis = new FileInputStream("d://aa.txt");}
}

3. 注意事项和使用细节

  1. 对于编译异常,程序中必须处理,比如try-catch 或者 throws

  2. 对于运行时异常,程序中如果没有处理。默认就是throws的方式处理

  3. 子类重写父类的方法时,对抛出异常的规定:子类重写的方法,所抛出的异常类型要么和父类抛出的异常一致,要么为父类抛出的异常的类型的子类

  • 从图中可以看出 ,NullPointerExceptionRuntimeException 的子类
class Father { //父类public void method() throws RuntimeException {}
}class Son extends Father {//子类@Overridepublic void method() throws NullPointerException{}
}
  1. throws过程中,如果有方法 try-catch,就相当于处理异常,就可以不必 throws处理。
  1. 编译异常是程序员必须要处理的。而运行异常报错有默认处理机制,并不要求程序员显示处理运行异常。
  • 可以看到如下 f1() 调用 f3() 报错,是因为 FileNotFoundException 是编译异常,当 f1() 调用时f3(),必须处理f3()的编译异常,在 f3()try-catch-finally ,或者继续 throws 这个编译异常。
  • 解决如下:
 public static void f1() throws FileNotFoundException {//这里大家思考问题 调用f3() 报错//解读://1. 因为f3() 方法抛出的是一个编译异常//2. 即这时,就要f1() 必须处理这个编译异常//3. 在f1() 中,要么 try-catch-finally ,或者继续 throws 这个编译异常f3(); // 抛出异常}public static void f3() throws FileNotFoundException {FileInputStream fis = new FileInputStream("d://aa.txt");}
  • 所以,如下可以看到 在f4()中调用方法f5() 是没问题的,原因是f5()抛出的是运行异常
 public static void f4() {//解读://1. 在f4()中调用方法f5() 是 OK 的//2. 原因是f5() 抛出的是运行异常//3. 而java中,并不要求程序员显示处理运行异常,因为有默认处理机制f5();}public static void f5() throws ArithmeticException {}

默认处理的运行异常

【JavaSE】throws 异常处理相关推荐

  1. 22.Java之异常处理(异常介绍,异常体系图一览,运行时异常,编译异常,try-catch方式处理异常,throws异常处理,自定义异常,throws 和 throw 的区别)

    22.1.异常介绍 Java语言中,将程序执行中发生的不正常情况称为 "异常" (开发过程中的语法错误和逻辑错误不是异常) 执行过程中所发生的异常事件分为两大类: Error:Ja ...

  2. 04 - JavaSE之异常处理

    异常的概念(运行期出现的错误) java 异常是 java 提供的用于处理程序中错误的一种机制. 所谓的错误是指在程序运行的过程中发生的一些异常事件.(如:除0溢出,数组下标越界,所要读取的文件不存在 ...

  3. JavaSE之异常处理

    1. 异常处理 意义 ​ try-catch-finally在开发中只是将可能出现异常的一段代码包起来,当其出现异常时是以一种友好的方式体现出来,并不能真正解决代码上的错误,异常的情况下还是需要修改代 ...

  4. JavaSE基础知识(6)—异常和异常处理

    一.异常的理解及体系结构图 1.理解 异常:程序运行过程中发生的不正常现象. java中的错误: 语法错误 运行异常 逻辑错误 2.体系图 java程序在执行过程中所发生的异常分为两类: Error: ...

  5. 异常处理 ?处理(try-catch) :甩锅(throws)_ java异常(Exception)处理

    目录点击跳转 本章概要 java异常处理入门 异常介绍 异常分类 异常体系图 运行时异常 编译异常 异常课堂练习 异常处理 ` try-catch `异常处理 `try-catch`异常处理小测试 ` ...

  6. JavaSE(尚硅谷视频学习笔记)

    文章目录 Java基础编程 Java语言概述 Java语言简述 1.基础图解 2.常识 3.计算机语言的发展迭代 4.Java语言版本迭代概述 5. Java语言应用的领域 6.Java语言的特点 开 ...

  7. Java学习笔记 --- 异常处理

    一.基本介绍 异常处理就是当异常发生时,对异常处理的方式 二.异常处理的方式 1.try - catch - finally 程序员在代码中捕获发生的异常,自行处理 处理机制示意: try {代码// ...

  8. Java基础篇:异常处理

    文章目录 异常概述与异常体系结构 常见异常 异常处理机制 异常处理机制一:try-catch-finally 异常处理机制二:throws 手动抛出异常:thow 如何自定义一个异常类? 总结 异常概 ...

  9. response.end后抛了异常_(七)异常处理

    (七)异常处理 异常 异常的体系结构 java.lang.Throwable|-----java.lang.Error:一般不便携针对性的代码进行处理|-----java.lang.Exception ...

最新文章

  1. windows xp远程桌面没有反应
  2. htop 和 bashtop 的一些不足
  3. Android httpUrlConnection的基本使用
  4. SpringCloud的学习记录(1)
  5. 500多页的机器学习入门笔记,下载超5万次,都讲了些什么?
  6. Mac与centos的ip配置
  7. Linux namespace - Docker 背后的故事
  8. Protocol Buffers proto语言语法说明
  9. hibernate入门学习(更新中)
  10. Microsoft Project学习系列(一)
  11. 高薪程序员面试题精讲系列25之你了解哪些Java新特性?你们公司使用哪个JDK版本?Java11了解过吗?
  12. LC-3 汇编语言 指令集
  13. 如何提升码代码能力方法论漫谈
  14. Windows 11 v22000.318 11月更新版
  15. vue3 内置组件keep-alive用法的全面介绍
  16. verilogHDL实现pwm控制
  17. vant移动端上传附件
  18. 第16章 调色盘管理器
  19. 阿里云OSS存储实例
  20. Handler原理讲解及源码分析

热门文章

  1. 【小f的刷题笔记】(JS)链表 - 单链表的分解 LeetCode86
  2. C语言echo文件,echo是什么?shell的echo
  3. leetcode(力扣)738. 单调递增的数字||714. 买卖股票的最佳时机含手续费
  4. FFmpeg使用---FFmpeg程序的使用(ffmpeg.exe, ffplay.exe, ffprobe.exe)
  5. python之numpy的用法
  6. Makefile 关于cd命令的注意事项
  7. 三种等待时间原理及场景
  8. Python-go-cqhttp原理和代码
  9. NSIS 静默安装vs2013运行时
  10. 爬虫:豆瓣电影top250