1 package com.bytezero.throwable;
2
3 import java.io.File;
4 import java.io.FileInputStream;
5 import java.io.FileNotFoundException;
6 import java.io.IOException;
7
8 /**
9 *
10 * @Description 异常处理的方式二:throws + 异常类型
11 * @author Bytezero·zhenglei! Email:420498246@qq.com
12 * @version
13 * @date 下午2:28:09
14 * @ 1.throws + 异常类型 写在方法的声明处,指明此方法执行时,可能会抛出的
15 * 异常类型,一旦当方法体执行时,出现异常,仍会在异常代码处生成一个异常类的对
16 * 象.此对象满足 throws后异常类型时,就会被抛出。异常代码后续的代码,就不再执行!!
17 *
18 * 2.体会:try-catch-finally:真正的将异常给处理了
19 * throws的方式只是将异常抛给了方法的调用者。并没有真正将异常处理掉
20 *
21 * 3.开发中如何选择使用try-catch-finally 还是使用throws?
22 * 3.1 如果父类中被重写的方法 没有 throws方式处理异常,则子类重写的方法,也不能
23 * 使用throws,意味着如果子类重写的方法中有异常,必须使用 try-catch-finally 的
24 * 方式处理。
25 * 3.2 执行的方法中,先后又调用了另外的几个方法,这几个方法时递进的关系执行的,我们
26 * 建议这几个方法使用 throws的方式进行处理,而执行的方法a 可以考虑使用 try-catch-finally
27 * 方式进行处理。
28 *
29 *
30 *
31 *
32 */
33 public class ExceptionTest3 {
34
35 public static void main(String[] args) {
36 try {
37 method2();
38
39 }catch(FileNotFoundException e) {
40 e.printStackTrace();
41 }catch(IOException e) {
42 e.printStackTrace();
43 }
44
45 //method3();
46
47 }
48
49 public static void method3() {
50 try {
51
52 method2();
53 }catch(IOException e) {
54 e.printStackTrace();
55 }
56
57 }
58
59 public static void method2() throws FileNotFoundException,IOException {
60
61 method1();
62 }
63
64
65 public static void method1() throws FileNotFoundException,IOException {
66
67
68 File file = new File("hello.txt");
69 FileInputStream fis = new FileInputStream(file);
70
71 int data = fis.read();
72 while(data != -1) {
73 System.out.println((char)data);
74 data = fis.read();
75
76 }
77 fis.close();
78
79 }
80 }

Java 异常处理(2) : 异常处理的方式二:throws + 异常类型的更多相关文章

  1. 异常处理的方式二:throws+异常类型

    package com.yhqtv.demo01Exception; import java.io.File; import java.io.FileInputStream; import java. ...

  2. 七 异常处理的两种方式(创建全局异常处理器&自定义异常)

    1 创建全局异常处理器 实现HandlerExceptionResolve接口 package com.springmvc01; import javax.servlet.http.HttpServl ...

  3. 创建Java多线程的两种方式和线程异常

    一.使用多线程的两种方法  使用多线程的两种方法有:继承Thread类和实现runable接口. 二.继承Thread类 来看一下thread类的源代码: class Thread implement ...

  4. 124、Java面向对象之引用传递实例二,String类型按值传递

    01.代码如下: package TIANPAN; /** * 此处为文档注释 * * @author 田攀 微信382477247 */ public class TestDemo { public ...

  5. throws关键字_异常处理的第一种方式(交给别人处理)和try_catch_异常处理的第二种方式(自己处理)

    throws关键字:异常处理的第一种方式,交给别人处理 作用: 当方法内部抛出异常对象的时候,那么我们就必须处理这个异常对象 可以使用throws关键字处理异常对象, 会把异常对象声明抛出给方法的调用 ...

  6. 关于Java中的异常处理(详细)

    Error:Java虚拟机无法解决的严重问题.如:JVM系统内部错误.资源耗尽等严重情况.比如:StackOverflowError和OOM.一般不编写针对性的代码进行处理 Exception:其它因 ...

  7. 一天一个Java基础——通过异常处理错误

    <Thinking in Java>上对这章的讲解不少,可见重要性,学习和总结一些主要的记录下来. 一.创建自定义异常 package Exception; class SimpleExc ...

  8. Java 中的异常处理机制

    生活中的异常:  不能够完整而顺利的完成一些工作 根据不同的异常进行相应的处理,而不会就此终端我们的生活 引出:  异常处理: 方式:  1.选择结构(逻辑判断)避免 demo:if逻辑处理异常 im ...

  9. 【Java基础】异常处理

    异常处理 异常概述 在 Java 语言中,将程序执行中发生的不正常情况称为"异常",但是开发过程中的语法错误和逻辑错误不是异常. 在执行过程中所发生的异常事件可分为两类: Erro ...

  10. java 面向对象(二十九):异常(二)异常的处理

    1.java异常处理的抓抛模型过程一:"抛":程序在正常执行的过程中,一旦出现异常,就会在异常代码处生成一个对应异常类的对象. * 并将此对象抛出. * 一旦抛出对象以后,其后的代 ...

随机推荐

  1. 程序员必备!10款实用便捷的Git可视化管理工具

    前言 俗话说得好"工欲善其事,必先利其器",合理的选择和使用可视化的管理工具可以降低技术入门和使用的门槛.我们在团队开发中统一某个开发工具的使用能够大大降低沟通成本,提高协作沟通效 ...

  2. C语言输出键盘

    使用printf()函数输出样式 #include <stdio.h> int main() { printf("┌───┬───┬───┬───┬───┬───┬───┬─── ...

  3. Git的使用(一):创建本地仓库并在其中添加、修改、删除文件

    创建本地版本库 版本库又名仓库,英文名repository,可以简单理解成一个目录,这个目录里面的所有文件都可以被Git管理起来,每个文件的修改.删除,Git都能跟踪,以便任何时刻都可以追踪历史,或者 ...

  4. 基于NET Core 的Nuget包制作、发布和运用流程

    开发缘由:公司需要调用天眼查-开放平台 ,验证客户的的营业执照信息是否在存续期,并将企业基本信息返回,之后和使用百度图文识别的企业信息进行对照是否一致. 前期准备 在网站中注册后,需要够买套餐.之后点 ...

  5. win10家庭版禁用更新

    前言 2020年初因为疫情在家远程办公,而我老家没有电脑,先后向两位大学生借了两台电脑来办公,发现一个现象:他们的电脑系统都是家庭版,也就是刚买电脑时安装的win10家庭版.也问了其它几位计算机专业的 ...

  6. pandas高效读取大文件的探索之路

    使用 pandas 进行数据分析时,第一步就是读取文件.在平时学习和练习的过程中,用到的数据量不会太大,所以读取文件的步骤往往会被我们忽视. 然而,在实际场景中,面对十万,百万级别的数据量是家常便饭, ...

  7. NLP国内外大模型汇总列表[文心一言、智谱、百川、星火、通义千问、盘古等等]

    NLP国内外大模型汇总列表[文心一言.智谱.百川.星火.通义千问.盘古等等] 中国大模型列表大全,全面收集有明确来源的大模型情况,包括机构.来源信息和分类等,随时更新. Awesome family ...

  8. 强化学习调参技巧一: DDPG算法训练动作选择边界值_分析解决

    1.原因: 选择动作值只在-1 1之间取值 actor网络输出用tanh,将动作规范在[-1,1],然后线性变换到具体的动作范围.其次,tanh激活区是有范围的,你的预激活变量(输入tanh的)范围太 ...

  9. 驱动开发:如何枚举所有SSDT表地址

    在前面的博文<驱动开发:Win10内核枚举SSDT表基址>中已经教大家如何寻找SSDT表基地址了,找到后我们可根据序号获取到指定SSDT函数的原始地址,而如果需要输出所有SSDT表信息,则 ...

  10. centOS系统 迁移docker镜像及数据文件到指定目录

    话说我今天正在快乐的敲代码,突然看到IDE报警磁盘空间不足了,du -h 查看了一下磁盘占用情况,发现是自己的docker镜像全部放/var/lib/docker目录下 这个系统磁盘给根目录只分配了5 ...