`
cakin24
  • 浏览: 1390366 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

Java 7提供的多异常捕捉

    博客分类:
  • java
阅读更多

一 多异常捕获介绍

在Java 7以前,每个catch块只能捕捉一个异常。从Java 7开始,一个catch块可以捕捉多个异常。多异常捕获格式如下:

catch(异常1 | 异常 2 | 异常3 ex)
{
}
使用一个catch块捕获多种异常时需要注意如下两点:
  • 多个异常之间用竖线隔开。
  • 多异常捕捉时,异常变量之前有隐式final修饰

二 多异常捕获示例

1 代码示例

public class MultiExceptionTest
{
	public static void main(String[] args)
	{
		try
		{
			int a = Integer.parseInt(args[0]);
			int b = Integer.parseInt(args[1]);
			int c = a / b;
			System.out.println("您输入的两个数相除的结果是:" + c );
		}
		catch (IndexOutOfBoundsException|NumberFormatException
			|ArithmeticException ie)
		{
			System.out.println("程序发生了数组越界、数字格式异常、算术异常之一");
			// 捕捉多异常时,异常变量默认有final修饰,
			// 所以下面代码有错:
			ie = new ArithmeticException("test");  // ①
		}
		catch (Exception e)
		{
			System.out.println("未知异常");
			// 捕捉一个类型的异常时,异常变量没有final修饰
			// 所以下面代码完全正确。
			e = new RuntimeException("test");    // ②
		}
	}
}


2 运行结果

F:\java\workspace\eception\src>javac MultiExceptionTest.java
MultiExceptionTest.java:19: 错误: 可能未分配 multi-catch 参数ie
                        ie = new ArithmeticException("test");  // ①

 

3 代码分析

 该程序catch块可以同时捕获三种类型的异常。捕获多种异常时,异常变量使用隐式的final修饰,因此上面程序①号代码将产生编译错误;捕获一种类型的异常时,异常变量没有final修饰,因此上面②号代码完全正确。

0
0
分享到:
评论

相关推荐

    java异常捕捉

    总的来说,Java异常捕捉机制提供了一种强大的方式来处理程序运行时的错误。通过合理使用try-catch-finally和throws,我们可以编写出更加健壮的代码,确保程序在遇到问题时不会突然崩溃,而是有机会恢复或至少提供...

    java异常处理习题

    * 可以使用多个 `catch` 子句来捕捉不同的异常类型。 * 多重捕捉异常的顺序是从子类到父类。 六、finally 子句 * `finally` 子句是用于释放资源、关闭文件、关闭数据库等的。 * `finally` 子句在异常处理的最后...

    java 异常详解,java异常分类,创建自己的异常

    Java 异常详解 Java 异常是指在程序运行中出现的违背指定正常流向的事件。异常可以分为两大类:-checked 异常和 unchecked 异常。Checked 异常必须在编译时捕捉并处理,而 unchecked 异常可以在编译时忽略,但是在...

    dubbo捕获自定义异常_dubbo异常捕获_dubbo异常_自定义异常_捕捉异常_

    7. **错误码和异常信息** 在自定义异常类中定义错误码和错误信息,可以提供更清晰的错误上下文。这有助于消费者快速定位问题,减少排查时间。 总之,通过以上步骤,你可以充分利用 Dubbo 的异常处理机制,确保在...

    Java多线程之多线程异常捕捉

    本文将深入探讨Java多线程中的异常捕捉,以及如何有效地在多线程环境中处理异常。 首先,让我们明确一点:Java的多线程不允许未捕获的checked异常直接抛出。这意味着每个线程都必须负责处理自己产生的异常,而不是...

    JAVA 自定义异常 全局捕获

    自己编写异常类型 ,自定义错误异常进行全局捕捉。实现项目全局的拦截定义输出。。。

    java异常 各种异常

    尽管提供的内容与异常处理直接相关的部分较少,但基于标题、描述以及部分上下文,我们可以深入探讨Java异常处理的相关概念。 ### Java异常概述 在Java编程语言中,异常处理是一项重要的机制,用于管理程序执行期间...

    实验五 Java异常处理实验.docx

    Java 异常处理实验 Java 异常处理是 Java 语言中的一种错误处理机制,用于捕获和处理程序执行过程中出现的异常情况。异常是指程序执行过程中出现的非正常情况,例如除零错误、数组下标越界等。 实验目的 本实验的...

    java基础第七章内部类与异常类.doc

    Java 基础第七章内部类与异常类 Java 语言支持在一个类...Java 中的内部类和异常处理机制提供了一种灵活和强大的方式来组织和处理代码。通过使用内部类和异常处理,我们可以编写更加robust、可靠和高效的 Java 程序。

    Java常见异常大全.pdf

    Java提供了一套丰富的异常类来帮助开发人员处理在程序执行过程中可能发生的错误。本文档列出了Java中常见的异常类型,并简要描述了这些异常的含义以及可能引发它们的场景。 首先,我们从错误和异常的基本概念说起。...

    java实现系统捕获异常发送邮件案例

    总结来说,Java实现系统捕获异常发送邮件的案例涉及了Java异常处理机制、Java Mail API的使用以及自定义数据结构(如枚举和类)来封装和管理邮件相关信息。这样的功能对于实时监控和故障排查非常有用,尤其是在大型...

    JAVA自定义异常类

    Java提供了丰富的内置异常类,但有时候,内置的异常类可能不足以精确地表达某些特定场景下的错误情况。此时,自定义异常类就显得尤为重要。 #### 二、自定义异常类示例解析 **1. 自定义异常类定义** ```java ...

    安卓异常捕捉弹窗

    "安卓异常捕捉弹窗"是一种实现这一目标的方法,它通过自定义的异常处理器在应用程序出现错误时弹出一个Dialog,显示详细的错误信息,并提供用户友好的操作选项。 首先,我们要了解Android中的异常处理机制。在Java...

    java编程中异常处理的优劣观

    首先,我们来看一下Java异常处理的优点: 1. **提高程序的健壮性**:通过捕捉和处理异常,程序可以继续执行,而不是因为一个未预期的问题就终止运行。这提高了程序的健壮性,使其在面对异常情况时依然能够提供服务...

    struts2之声明式异常捕捉

    通过这种方式,插件可以提供自己的异常处理机制,而不影响主应用的配置。 总之,Struts2的声明式异常处理是一个强大的工具,它使得异常处理更加模块化、易于管理和扩展。结合源码和相关工具,开发者可以深入理解这...

    Java 异常处理的误区和经验总结

    以下是对Java异常处理的一些误区和经验总结。 **误区一:过度使用try-catch块** 有些开发者习惯于在每个函数的开始部分都套用try-catch块,以为这样可以捕捉所有可能出现的异常。实际上,这种做法使得代码变得混乱...

    java 异常案例

    ### Java异常处理机制详解与案例分析 在Java编程语言中,异常处理是程序设计中一个非常重要的组成部分。它能够帮助开发者有效地捕捉并处理程序运行时出现的问题,避免因错误而导致程序崩溃,从而提高软件的健壮性和...

    Thread捕捉异常示例

    总结来说,"Thread捕捉异常示例"主要涉及了在Java多线程环境中如何有效地管理和处理线程中的异常。通过设置自定义的未捕获异常处理器,我们可以确保即使线程出现异常,也能按照预定的方式进行处理,避免程序的意外...

Global site tag (gtag.js) - Google Analytics