美文网首页
BD1 - Java 2-3 异常

BD1 - Java 2-3 异常

作者: hongXkeX | 来源:发表于2017-07-31 20:23 被阅读8次

We believe that writing is about content, about what you want to say – not about fancy formatting.
我们坚信写作写的是内容,所思所想,而不是花样格式。
— Ulysses for Mac

Java第7天上午

上午主要讲了异常处理

学习目标:

  • 理解异常概念
  • 运用try块、catch块和finally块处理异常
  • 运用多重catch块处理异常
  • 运用嵌套try catch块处理异常
  • 运用throw 和 throws处理异常
  • 运用java编写和使用自定义异常

生活中的异常:

QQ图片20170731124233.png

什么是异常:

什么是异常

异常类的层次结构:

层次结构 层次结构
  • Throwable
    • Exception
    • Error

记住常见的异常:

  • Exception
    (异常层次结构的根类)
  • ArithmeticException
    (算术错误情形,如以零作除数)
  • ArrayIndexOutOfBoundException
    (数组大小小于或大于实际的数组大小)
  • NullPointerException
    (尝试访问 null 对象成员)
  • ....
异常类

异常处理:

异常处理

进行异常处理:(通过5个关键字实现)

  • try catch finally
  • throw throws


    异常处理

try catch finally:

异常处理块的一般形式:

异常处理块的一般形式

try catch 情况一:

try catch 情况一

try中不会产生异常则不进入catch而执行后面的语句

try catch 情况一示例:

示例1

学会看异常信息:


Paste_Image.png

try catch 情况二:

try catch 情况二

try中产生了异常 进入catch中 执行完catch中语句后再执行后面的代码段5

try catch 情况二示例:

try catch 情况二示例

try catch 情况三:

try catch 情况三

如果异常类型不匹配,则不进入相应catch内,程序中断运行。

try catch 情况三示例:

情况三示例

由情况三 引出finally:

引出finally finally示例
  • 不管有木有出现异常,finally块中代码都会执行
  • 当try和catch中有return时,finally仍然会执行
  • finally是在return后面的表达式运算后执行的,所以函数返回值是在finally执行前确定的

多重catch块:

多重catch

注意多重catch块 异常 顺序:
catch异常类 要先catch子类后父类

catch顺序

所以 这样错:


catch顺序错

(IOException 是 FileNotFoundException的父类)

下面才对:

public class T3 {

    public static void main(String[] args) {
        try{
            FileReader read = new FileReader("d:/test.txt");
            char a = (char)read.read();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

下午做了一些练习:


每日一练:

课堂作业:
作业点我查看

课外练习:
课外作业点我查看


拓展阅读:

1 - Java异常体系结构
2 - 深入理解java异常处理机制

世界上所有的追求都是因为热爱
一枚爱编码 爱生活 爱分享的IT信徒
— hongXkeX

相关文章

网友评论

      本文标题:BD1 - Java 2-3 异常

      本文链接:https://www.haomeiwen.com/subject/vkellxtx.html