Java自学者论坛

 找回密码
 立即注册

手机号码,快捷登录

恭喜Java自学者论坛(https://www.javazxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,会员资料板块,购买链接:点击进入购买VIP会员

JAVA高级面试进阶训练营视频教程

Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程Go语言视频零基础入门到精通Java架构师3期(课件+源码)
Java开发全终端实战租房项目视频教程SpringBoot2.X入门到高级使用教程大数据培训第六期全套视频教程深度学习(CNN RNN GAN)算法原理Java亿级流量电商系统视频教程
互联网架构师视频教程年薪50万Spark2.0从入门到精通年薪50万!人工智能学习路线教程年薪50万大数据入门到精通学习路线年薪50万机器学习入门到精通教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程MySQL入门到精通教程
查看: 4694|回复: 0

Java之异常的处理(try-catch)

[复制链接]
  • TA的每日心情
    奋斗
    前天 12:49
  • 签到天数: 789 天

    [LV.10]以坛为家III

    2049

    主题

    2107

    帖子

    72万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    722638
    发表于 2021-4-12 17:10:12 | 显示全部楼层 |阅读模式
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.IOException;

    import org.junit.Test;

    /*
    * 一、异常的处理:抓抛模型
    *
    * 过程一:"抛":程序在正常执行的过程中,一旦出现异常,就会在异常代码处生成一个对应异常类的对象。
    * 并将此对象抛出。
    * 一旦抛出对象以后,其后的代码就不再执行。
    *
    * 关于异常对象的产生:① 系统自动生成的异常对象
    * ② 手动的生成一个异常对象,并抛出(throw)
    *
    * 过程二:"抓":可以理解为异常的处理方式:① try-catch-finally ② throws
    *
    *
    * 二、try-catch-finally的使用
    *
    * try{
    * //可能出现异常的代码
    *
    * }catch(异常类型1 变量名1){
    * //处理异常的方式1
    * }catch(异常类型2 变量名2){
    * //处理异常的方式2
    * }catch(异常类型3 变量名3){
    * //处理异常的方式3
    * }
    * ....
    * finally{
    * //一定会执行的代码
    * }
    *
    * 说明:
    * 1. finally是可选的。
    * 2. 使用try将可能出现异常代码包装起来,在执行过程中,一旦出现异常,就会生成一个对应异常类的对象,根据此对象
    * 的类型,去catch中进行匹配
    * 3. 一旦try中的异常对象匹配到某一个catch时,就进入catch中进行异常的处理。一旦处理完成,就跳出当前的
    * try-catch结构(在没有写finally的情况)。继续执行其后的代码
    * 4. catch中的异常类型如果没有子父类关系,则谁声明在上,谁声明在下无所谓。
    * catch中的异常类型如果满足子父类关系,则要求子类一定声明在父类的上面。否则,报错
    * 5. 常用的异常对象处理的方式: ① String getMessage() ② printStackTrace()
    * 6. 在try结构中声明的变量,再出了try结构以后,就不能再被调用
    * 7. try-catch-finally结构可以嵌套
    *
    * 体会1:使用try-catch-finally处理编译时异常,是得程序在编译时就不再报错,但是运行时仍可能报错。
    * 相当于我们使用try-catch-finally将一个编译时可能出现的异常,延迟到运行时出现。
    *
    * 体会2:开发中,由于运行时异常比较常见,所以我们通常就不针对运行时异常编写try-catch-finally了。
    * 针对于编译时异常,我们说一定要考虑异常的处理。
    */
    public class ExceptionTest1 {


    @Test
    public void test2(){
    try{
    File file = new File("hello.txt");
    FileInputStream fis = new FileInputStream(file);

    int data = fis.read();
    while(data != -1){
    System.out.print((char)data);
    data = fis.read();
    }

    fis.close();
    }catch(FileNotFoundException e){
    e.printStackTrace();
    }catch(IOException e){
    e.printStackTrace();
    }
    }

    @Test
    public void test1(){

    String str = "123";
    str = "abc";
    int num = 0;
    try{
    num = Integer.parseInt(str);

    System.out.println("hello-----1");
    }catch(NumberFormatException e){
    // System.out.println("出现数值转换异常了,不要着急....");
    //String getMessage():
    // System.out.println(e.getMessage());
    //printStackTrace():
    e.printStackTrace();
    }catch(NullPointerException e){
    System.out.println("出现空指针异常了,不要着急....");
    }catch(Exception e){
    System.out.println("出现异常了,不要着急....");

    }
    System.out.println(num);

    System.out.println("hello-----2");
    }

    }
    哎...今天够累的,签到来了1...
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|手机版|小黑屋|Java自学者论坛 ( 声明:本站文章及资料整理自互联网,用于Java自学者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

    GMT+8, 2024-9-8 04:43 , Processed in 0.061201 second(s), 29 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2021, Tencent Cloud.

    快速回复 返回顶部 返回列表