• java7 异常处理增强


    在Java 7发行版中,oracle在异常处理机制上也做了一些不错的更改。这些主要是改进的catch块多余的throws子句。让我们看看他们是如何改变的。

    1.改进了Java 7中的catch块

    在此功能中,现在您可以在单个catch块中捕获多个异常。在Java 7之前,您只能在每个catch块中仅捕获一个异常。
    要指定期望的例外列表,使用竖线('|')字符。
    Java程序可在单个catch块中捕获多个异常。

    try
    {
        //Do some processing which throws NullPointerException;
        throw new NullPointerException();
    }
    //You can catch multiple exception added after 'pipe' character
    catch( NullPointerException npe | IndexOutOfBoundsException iobe )
    {
           throw ex;
    }
    

    如果一个catch块处理一个以上的异常类型,则该catch参数是隐式的final。在此示例中,catch参数exfinal,因此您不能在catch块内为其分配任何值。

    2. Java 7中的冗余抛出子句

    此功能使您免于在方法声明中使用throws子句。参见下面的示例:

    public class MultipleExceptionsInCatchBlock {
     
        public static void main(String[] args)
        {
                sampleMethod();
        }
     
        public static void sampleMethod()
                        //throws Throwable  //No need to do this
        {
            try
            {
                //Do some processing which throws NullPointerException; I am sending directly
                throw new NullPointerException();
            }
            //You can catch multiple exception added after 'pipe' character
            catch(NullPointerException | IndexOutOfBoundsException ex)
            {
                throw ex;
            }
            //Now method sampleMethod() do not need to have 'throws' clause
            catch(Throwable ex)
            {
                throw ex;
            }
        }
    }
    

  • 相关阅读:
    实例演示Android异步加载图片(转)
    python egg for centos 制作
    获取 python import模块的路径
    error: zlib.h: No such file or directory
    error: pyconfig.h: No such file or directory
    error: bzlib.h: No such file or directory
    VirtualBox虚拟机克隆方法
    错误:‘lock_guard’ 在此作用域中尚未声明
    出现问题:fatal error: ltdl.h: No such file or directory
    OpenLdap与BerkeleyDB安装过程
  • 原文地址:https://www.cnblogs.com/qingmiaokeji/p/12555359.html
Copyright © 2020-2023  润新知