Java连载62-使用throws关键字处理异常
一、处理异常的两种方式
1.所有的编译时异常,要求程序员在编写程序阶段,必须对它进行处理,如果不处理的话,编译就会无法通过,处理异常有两种方法:捕捉和声明抛出。
2.捕捉:try.....catch.......
3.声明抛出就是方法声明的位置上使用throws关键字抛出异常。
4.所有RuntimeException的子类都是运行时异常,运行时异常程序员在编写阶段不需要对它进行处理。
5.编译时异常发生的几率比较高;运行时异常发生的几率比较低。
6.所有的Exception的直接子类都是“编译时异常”。
二、处理异常有两种方式
1.声明抛出 throws
2.捕捉 try.....catch.......
以下程序演示第一种方式:声明抛出,在方法声明的位置上使用throws关键字向上抛出异常。
package com.bjpowernode.java_learning; import java.io.*; public class D62_1_ { public static void main(String[] args) throws FileNotFoundException{ //创建一个文件输入流,读取文件 //java编译器是如何知道以下的代码在执行过程可能存在异常 //java编译器是如何知道这个异常发生的几率比较高呢? //java编译器不是那么智能,因为FileInputStream这个构造方法在声明的位置上使用了 //throws FileNotFoundException; //FileInputStream fls = new FileInputStream("C:\\Users\\lenovo1\\Desktop\\微信公众号运营-Java\\Java连载51-super关键字.docx"); // try{ m1(); //使用throws处理异常是不是真正处理异常而是推卸责任 //谁调用就会跑给谁 //上面的m1方法如果出现了异常,因为采用的是向上抛出,给了JVM,JVM遇到这个异常 //就会退出JVM,下面的这个代码不会执行 // }catch(FileNotFoundException e) { // System.out.println("出现了异常"); // } } public static void m1() throws FileNotFoundException{ m2(); } public static void m2() throws FileNotFoundException{ m3(); } public static void m3() throws FileNotFoundException{ //FileNotFound构造方法声明位置上使用了throws(向上抛出) new FileInputStream("E:\\04.image\\timg.jpgu"); } }
异常出现了就一层一层往上抛。
再看一下使用try....catch......来处理这些异常
public static void main(String[] args) { //创建一个文件输入流,读取文件 //java编译器是如何知道以下的代码在执行过程可能存在异常 //java编译器是如何知道这个异常发生的几率比较高呢? //java编译器不是那么智能,因为FileInputStream这个构造方法在声明的位置上使用了 //throws FileNotFoundException; //FileInputStream fls = new FileInputStream("C:\\Users\\lenovo1\\Desktop\\微信公众号运营-Java\\Java连载51-super关键字.docx"); try{ m1(); //使用throws处理异常是不是真正处理异常而是推卸责任 //谁调用就会跑给谁 //上面的m1方法如果出现了异常,因为采用的是向上抛出,给了JVM,JVM遇到这个异常 //就会退出JVM,下面的这个代码不会执行 }catch(FileNotFoundException e) { System.out.println("出现了异常"); } }
三、源码:
D62_1_ThrowsOfException.java
https://github.com/ruigege66/Java/blob/master/D62_1_ThrowsOfException.java
2.CSDN:https://blog.csdn.net/weixin_44630050
3.博客园:https://www.cnblogs.com/ruigege0000/
4.欢迎关注微信公众号:傅里叶变换,个人公众号,仅用于学习交流,后台回复”礼包“,获取大数据学习资料
Java连载62-使用throws关键字处理异常的更多相关文章
- 【Java学习笔记之三十二】浅谈Java中throw与throws的用法及异常抛出处理机制剖析
异常处理机制 异常处理是对可能出现的异常进行处理,以防止程序遇到异常时被卡死,处于一直等待,或死循环. 异常有两个过程,一个是抛出异常:一个是捕捉异常. 抛出异常 抛出异常有三种形式,一是throw, ...
- java run()方法无法throws 异常
感谢大佬:https://blog.csdn.net/z_ssyy/article/details/95345205 其实原因很简单,run()方法是我们调用start()方法后,jvm再去调用run ...
- 浅谈Java的throw与throws
转载:http://blog.csdn.net/luoweifu/article/details/10721543 我进行了一些加工,不是本人原创但比原博主要更完善~ 浅谈Java异常 以前虽然知道一 ...
- 再探Java基础——throw与throws
http://blog.csdn.net/luoweifu/article/details/10721543 异常处理机制 异常处理是对可能出现的异常进行处理,以防止程序遇到异常时被卡死,处于一直等待 ...
- Java之旅(一)---说说“异常”那些事
从開始学习VB,就听说过"异常",认为异常处理就是加上try..catch,不让错误抛出给用户,到此为止,不要再往下问了,再问也不会了.这就是那时候的理解.如今随时项目经验的 ...
- java中IO流操作的标准异常类
package 加入异常处理的字节流操作; import java.io.FileNotFoundException; import java.io.FileOutputStream; import ...
- 黑马程序员——【Java基础】——面向对象(二)异常机制、包(Package)
---------- android培训.java培训.期待与您交流! ---------- 一.异常机制 (一)异常概述 1.异常:就是程序在运行时出现不正常情况. 2.异常类:程序在运行时,出现的 ...
- 【Java基础】10、Java中throw和throws的区别
系统自动抛出的异常 所有系统定义的编译和运行异常都可以由系统自动抛出,称为标准异常,并且 Java 强烈地要求应用程序进行完整的异常处理,给用户友好的提示,或者修正后使程序继续执行. 语句抛出的异常 ...
- java之throw和throws
抛出异常有三种形式,一是throw,一个throws,还有一种系统自动抛异常.下面它们之间的异同. 一.系统自动抛异常 当程序语句出现一些逻辑错误.主义错误或类型转换错误时,系统会自动抛出异常:(举个 ...
随机推荐
- 2019-9-17:渗透测试,基础学习,apache初识,mysql初识等笔记
python -m SimpleHTTPServer gedit 文本编辑器 apache2 默认配置文件目录:/etc/apache2/apache2默认首页源码: /var/www/html my ...
- 从面试官甄别项目经验的角度,说说如何在简历中写项目经验(java后端方向)
在大多的JD(职位介绍)里,会写明该职位需要xx时间的相关经验,换句话说就是需要在简历中看到一定年限的相关商业项目经验,否则估计连面试的机会都没. 在本文里,不讨论这种门槛是否合理,而会以Java相关 ...
- Linux(CentOS7)修改默认yum源为国内的阿里云、网易yum源
修改方式: echo 备份当前的yum源 mv /etc/yum.repos.d /etc/yum.repos.d.backup4comex echo 新建空的yum源设置目录 mkdir /etc/ ...
- MySQL数据库day20190922
1.dos命令 set names gbk; 2.MySQL练习#创建school数据库: create database school;#切换school数据库: use school; # pri ...
- python 3 mro
__mro__ 1.只有在python2中才分新式类和经典类,python3中统一都是新式类 2.在python2中,没有显式的继承object类的类,以及该类的子类,都是经典类 3.在python2 ...
- 重新调用 layoutSubview
重新调用 layoutSubview
- 3分钟了解ServiceStage 应用智能化运维【华为云分享】
[摘要] 微服务云应用平台(ServiceStage)是面向企业及开发者的一站式DevOps平台服务,支持基于微服务的应用开发.治理.部署及运维监控的全生命周期管理,并提供大规模容器集群管理及中间件服 ...
- 简单http和https服务器python脚本
欢迎加入python学习交流群 667279387 工作经常要用到测试http和https协议,这里写了两个简单的脚本实现简单的http服务器和https服务器. http服务器代码 import s ...
- Python文章相关性分析---金庸武侠小说分析-2018.1.16
最近常听同事提及相关性分析,正巧看到这个google的开源库,并把相关操作与调试结果记录下来. 输出结果: 比较有意思的巧合是黄蓉使出打狗棒,郭靖就用了降龙十八掌,再后测试了名词的解析. 小说集可以百 ...
- 打样ov9650,无一幸免,失败告终,之调试记录
新打样的ov9650,焊接了4块,其中只有2块有反应,另外两块无反应,于是使用热风台助焊,调试 助焊无效,怀疑焊盘有问题,于是拆掉 有问题的图像不正常 已看图像,只知道缺位,于是使用示波器检查,发现d ...