zoukankan      html  css  js  c++  java
  • 理解Java异常处理机制——Java异常处理的一个综合实例

    理解Java异常处理机制——Java异常处理的一个综合实例

                                       佟强 2009年12月8日

    声明抛出异常

    • 如果程序员不想在当前方法内处理异常,可以使用throws语句声明将异常抛出到调用方法中。
    • 调用方法也可以将异常再抛给其他调用方法。
    • 如果所有的方法都选择了抛出此异常,最后Java虚拟机将捕获它,输出相关的错误信息,并终止程序的运行。
    • 在异常被抛出的过程中,任何方法都可以捕获异常并进行相应的处理。

    捕获异常

    • 捕获异常需要使用try、catch、finally构成的语句块。
    • try语句块中是可能抛出异常的代码,如果一条语句抛出了异常,其后续语句不会继续执行,而是转到catch进行异常类型匹配。
    • catch语句块负责捕获指定类型的异常并进行处理。
    • finally语句块是可选的,一般用于释放资源,无论是否发生异常,finally语句块总会执行。
    • 由于继承,在有多个异常需要捕获时,异常类型的顺序很重要。
    • getMessage()方法返回一个对发生的异常进行描述的字符串。
    • printStackTrace()方法打印方法的调用序列,一直到异常的产生位置。
        try{
            //可能抛出异常的代码
        }catch(ExceptionType1 e1){
            //抛出异常ExceptionType1时的异常处理代码
        }catch(ExceptionType2 e2){
            //抛出异常ExceptionType2时的异常处理代码
        }finally{
            //无论是否抛出异常,都会执行的代码
        }
    

    抛出异常

    • 不仅Java系统的类可以抛出异常,用户程序也可以抛出异常。
    • 通过throw语句来抛出异常对象。
        throw new ExceptionType1();
    

    声明异常类

    • 除了使用系统预定义的异常类外,用户还可以声明自己的异常类。
    • 用户自定义的异常类必须是Exception的子类。
        public class MyException extends Exception{
            public MyException(){
                super("发生异常了!");
            }
        }
     
  • 相关阅读:
    (OK) 从do_register_framebuffer开始的函数调用关系
    Linux内核基础--事件通知链(notifier chain)
    Java EE即将死去,毫无疑问!- Docker & 微服务 & DevOps
    GUI显示系统之SurfaceFlinger--- Gralloc与Framebuffer
    (OK) kernel create framebuffer device
    Android: 显示系统模块加载以及调用流程 HWComposer::loadFbHalModule() -> framebuffer_open()
    (OK) Android x86如何启动到图形界面&init.sh分析.md
    error: call to '__creat_missing_mode' declared with attribute error
    Android
    Android hwcomposer模块接口
  • 原文地址:https://www.cnblogs.com/zhangyunlin/p/6168064.html
Copyright © 2011-2022 走看看