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,还有一种系统自动抛异常.下面它们之间的异同. 一.系统自动抛异常 当程序语句出现一些逻辑错误.主义错误或类型转换错误时,系统会自动抛出异常:(举个 ...
随机推荐
- ERROR: Unrecognized command line argument: 'use'
Unrecognized command line argument: 'use' gvm--GoLang语言多版本管理工具 基础环境 centos6.5 报错内容 gvm在命令行以外的任何地方调用 ...
- HTML5的一些验证挺方便的
一些基本的验证都可以很简单的实现,节省了很多繁琐的步骤.
- HTML标签-->HTML5新增
HTML的Form新增属性 <form method="post" name="myForm"> <p> 邮箱:<input ty ...
- Incorrect string value: '\xF0\x9F\x92\x8BTi...'错误
一.背景 1.java项目,name含有表情插入到mysql数据库中报错 Incorrect string value: '\xF0\x9F\x92\x8BTi.. 2.解决办法 (1)将字符串中 ...
- 《手把手教你》系列练习篇之7-python+ selenium自动化测试 -压轴篇(详细教程)
1. 简介 “压轴”原本是戏曲名词,指一场折子戏演出的倒数第二个剧目.在现代社会中有很多应用,比如“压轴戏”,但压轴也是人们知识的一个盲区.“压轴”本意是指倒数第二个节目,而不是人们常说的倒数第一个, ...
- 【并发编程】关于Thread类的详细介绍
多线程编程基础--Thread类 Thread类是Java中实现多线程编程的基础类.本篇博客就来介绍下Thread类的常用API和常见用法. Thread类常用的方法如下: Thread.active ...
- 相关性不一定等于因果性:从 Yule-Simpson’s Paradox 讲起
1. 两件事伴随发生,不代表他们之间有因果关系 - 从一些荒诞相关性案例说起 在日常生活和数据分析中,我们可以得到大量相关性的结论,例如: 输入X变量,有98%置信度得到Y变量 只要努力,就能成功 只 ...
- IDEA如何重置窗口布局
如何重置窗口布局 我不知道怎么搞的,左边的,上边的,下边的,视图都没有了 , 重启了一下,然后重置为默认视图,就好了
- Anticancer Effect of Deuterium Depleted Water - Redox Disbalance Leads to Oxidative Stress(低氘水的抗癌作用-氧化还原失衡导致了氧化应激)-解读人:范徉
期刊名:Molecular & Cellular Proteomics 发表时间:(2019年12月) IF:4.828 单位:瑞典卡罗林斯卡学院 物种:人 技术:标记定量蛋白质组学,氧化还原 ...
- Django中直接执行SQL语句
欢迎加入python学习交流群 667279387 今天在django views.py看到同事写的代码里面有段关于数据库查询的语句.因为涉及多个表的查询,所以django 的models的查询无法满 ...