【JavaSE】throws 异常处理
文章目录
- 1. 基本介绍
- 2. 快速入门案例
- 3. 注意事项和使用细节
1. 基本介绍
- 如果一个方法(中的语句执行时)可能生成某种异常,但是并不能确定如何处理这种异常,则此方法应显示地声明抛出异常,表明该方法将不对这些异常进行处理,而由该方法的调用者负责处理。
- 在方法声明中用
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. 注意事项和使用细节
对于编译异常,程序中必须处理,比如
try-catch
或者throws
对于运行时异常,程序中如果没有处理。默认就是
throws
的方式处理
子类重写父类的方法时,对抛出异常的规定:子类重写的方法,所抛出的异常类型要么和父类抛出的异常一致,要么为父类抛出的异常的类型的子类。
- 从图中可以看出 ,
NullPointerException
是RuntimeException
的子类
class Father { //父类public void method() throws RuntimeException {}
}class Son extends Father {//子类@Overridepublic void method() throws NullPointerException{}
}
- 在
throws
过程中,如果有方法try-catch
,就相当于处理异常,就可以不必throws
处理。
- 编译异常是程序员必须要处理的。而运行异常报错有默认处理机制,并不要求程序员显示处理运行异常。
- 可以看到如下
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 异常处理相关推荐
- 22.Java之异常处理(异常介绍,异常体系图一览,运行时异常,编译异常,try-catch方式处理异常,throws异常处理,自定义异常,throws 和 throw 的区别)
22.1.异常介绍 Java语言中,将程序执行中发生的不正常情况称为 "异常" (开发过程中的语法错误和逻辑错误不是异常) 执行过程中所发生的异常事件分为两大类: Error:Ja ...
- 04 - JavaSE之异常处理
异常的概念(运行期出现的错误) java 异常是 java 提供的用于处理程序中错误的一种机制. 所谓的错误是指在程序运行的过程中发生的一些异常事件.(如:除0溢出,数组下标越界,所要读取的文件不存在 ...
- JavaSE之异常处理
1. 异常处理 意义 try-catch-finally在开发中只是将可能出现异常的一段代码包起来,当其出现异常时是以一种友好的方式体现出来,并不能真正解决代码上的错误,异常的情况下还是需要修改代 ...
- JavaSE基础知识(6)—异常和异常处理
一.异常的理解及体系结构图 1.理解 异常:程序运行过程中发生的不正常现象. java中的错误: 语法错误 运行异常 逻辑错误 2.体系图 java程序在执行过程中所发生的异常分为两类: Error: ...
- 异常处理 ?处理(try-catch) :甩锅(throws)_ java异常(Exception)处理
目录点击跳转 本章概要 java异常处理入门 异常介绍 异常分类 异常体系图 运行时异常 编译异常 异常课堂练习 异常处理 ` try-catch `异常处理 `try-catch`异常处理小测试 ` ...
- JavaSE(尚硅谷视频学习笔记)
文章目录 Java基础编程 Java语言概述 Java语言简述 1.基础图解 2.常识 3.计算机语言的发展迭代 4.Java语言版本迭代概述 5. Java语言应用的领域 6.Java语言的特点 开 ...
- Java学习笔记 --- 异常处理
一.基本介绍 异常处理就是当异常发生时,对异常处理的方式 二.异常处理的方式 1.try - catch - finally 程序员在代码中捕获发生的异常,自行处理 处理机制示意: try {代码// ...
- Java基础篇:异常处理
文章目录 异常概述与异常体系结构 常见异常 异常处理机制 异常处理机制一:try-catch-finally 异常处理机制二:throws 手动抛出异常:thow 如何自定义一个异常类? 总结 异常概 ...
- response.end后抛了异常_(七)异常处理
(七)异常处理 异常 异常的体系结构 java.lang.Throwable|-----java.lang.Error:一般不便携针对性的代码进行处理|-----java.lang.Exception ...
最新文章
- windows xp远程桌面没有反应
- htop 和 bashtop 的一些不足
- Android httpUrlConnection的基本使用
- SpringCloud的学习记录(1)
- 500多页的机器学习入门笔记,下载超5万次,都讲了些什么?
- Mac与centos的ip配置
- Linux namespace - Docker 背后的故事
- Protocol Buffers proto语言语法说明
- hibernate入门学习(更新中)
- Microsoft Project学习系列(一)
- 高薪程序员面试题精讲系列25之你了解哪些Java新特性?你们公司使用哪个JDK版本?Java11了解过吗?
- LC-3 汇编语言 指令集
- 如何提升码代码能力方法论漫谈
- Windows 11 v22000.318 11月更新版
- vue3 内置组件keep-alive用法的全面介绍
- verilogHDL实现pwm控制
- vant移动端上传附件
- 第16章 调色盘管理器
- 阿里云OSS存储实例
- Handler原理讲解及源码分析
热门文章
- 【小f的刷题笔记】(JS)链表 - 单链表的分解 LeetCode86
- C语言echo文件,echo是什么?shell的echo
- leetcode(力扣)738. 单调递增的数字||714. 买卖股票的最佳时机含手续费
- FFmpeg使用---FFmpeg程序的使用(ffmpeg.exe, ffplay.exe, ffprobe.exe)
- python之numpy的用法
- Makefile 关于cd命令的注意事项
- 三种等待时间原理及场景
- Python-go-cqhttp原理和代码
- NSIS 静默安装vs2013运行时
- 爬虫:豆瓣电影top250