原文: http://www.itzhai.com/java-based-notebook-java-exceptions-in-the-exception-custom-exception.html
public class Exception extends Throwable
Exception 类及其子类是 Throwable 的一种形式,它指出了合理的应用程序想要捕获的条件。
public class RuntimeException extends Exception
RuntimeException 是那些可能在 Java 虚拟机正常运行期间抛出的异常的超类。
可能在执行方法期间抛出但未被捕获的 RuntimeException 的任何子类都无需在 throws 子句中进行声明。
1、异常的分类:
① 非运行时异常(Checked Exception)
Java中凡是继承自Exception但不是继承自RuntimeException的类都是非运行时异常
② 运行时异常(Runtime Exception/Unchecked Exception)
a) RuntimeException类直接继承自Exception类,称为运行时异常。Java中所有的运行时异常都直接或间接的继承自RuntimeException.
Java中所有的异常类都直接或间接的继承自Exception。
2、异常的处理:
对应非运行时异常,必须对其进行处理。处理方式有两种:
使用try…catch…finally语句块进行捕获
在产生异常的方法所在的方法声明throws Exception
在产生异常的方法所在的方法声明throws Exception
对于运行时异常,可以不对其进行处理,也可以对其进行处理。一般情况下都不对其进行处理。
3、捕获异常:
try { FileInputStream fs = new FileInputStream("D:/temp/a.txt"); } catch (FileNotFoundException e) { System.out.println("catch..."); e.printStackTrace(); } finally{ System.out.println("finally..."); }
4、抛出和捕获异常:
4.1、把异常交给JVM处理:
public class ExceptionTest { public static void execute() throws Exception { System.out.println("execute..."); throw new Exception(); } public static void main(String[] args) throws Exception { execute(); } }
4.2、或者使用try catch语句块捕获异常:
public class ExceptionTest { public static void execute() throws Exception { System.out.println("execute..."); throw new Exception(); } public static void main(String[] args) { try { execute(); } catch (Exception e1) { e1.printStackTrace(); } } }
5、自定义异常:
自定义异常通常是定义一个继承自Exception类的子类。一般情况下我们都会直接继承自Exception类,而不会继承某个运行时的异常类。
5.1、创建自定义异常:
public class MyException extends Exception{ public MyException(){ super(); } public MyException(String msg){ super(msg); } }
5.2、在类中使用异常:
public class ExceptionTest { public static void execute(String a) throws MyException { System.out.println("execute..."); if("true".equals(a)){ throw new MyException("参数不能为 true"); } } }
5.3、捕获自定义异常:
public static void main(String[] args) throws MyException { execute("true"); }
6、异常使用注意事项:
当使用多个catch语句块来捕获异常时,需要将父类的catch语句块放到子类型的catch块之后,这样才能保证后续的catch可能被执行,否则子类型的catch将永远无法到达,Java编译器会报编译错误。
如果try语句块中存在return语句,那么首先会执行finally语句块中的代码,然后才返回。
如果try语句块中存在System.exit(0)语句,那么久不会执行finally语句块的代码了,因为System.exit(0)会终止当前运行的JVM。程序在JVM终止前结束执行。
相关推荐
自定义异常是在Java中通过继承`java.lang.Throwable`或其子类(如`Exception`或`Error`)来实现的。通常,我们选择继承`Exception`类,因为它用于表示程序可以恢复的错误,而`Error`则用于表示系统级的严重问题,...
在 Java 中,自定义异常通常继承自 `Exception` 或其子类。例如,你可以创建一个名为 `CustomServiceException` 的异常类,它可能包含特定的错误码和错误信息: ```java public class CustomServiceException ...
自定义异常是Java中的一种高级技巧,允许开发者创建符合特定应用需求的异常类。下面将详细解释如何在Java中自定义异常,并通过源代码实例进行说明。 一、自定义异常的必要性 在标准库中,Java已经提供了一套丰富的...
在实际的Java开发项目中,自定义异常是提高代码可读性和可维护性的重要手段。异常处理是程序设计的关键部分,它有助于捕获并处理在程序执行过程中可能出现的错误或异常情况。Java提供了丰富的异常处理机制,包括预...
自定义异常是指在实际应用中,Java 提供的异常类不能够捕获的异常时,需要用户自定义异常。用户自定义异常可以满足实际应用中的需求,提高程序的交互性和完整性。 Java 异常处理的重要性 Java 异常处理的重要性...
Java自定义异常处理详细介绍,包括了很多比较经典的案例,可以自己研究自定义异常
自定义异常是Java编程中一个重要的概念。通过自定义异常,开发者可以创建符合特定业务逻辑需求的异常类型,从而使得程序更加健壮、易于维护。 ### 实现自定义异常的步骤: #### 步骤一:定义自定义异常类 1. **...
【Java异常处理-自定义异常类及课后练习】 在Java编程中,异常处理是程序健壮性的重要组成部分。Java提供了丰富的预定义异常类,但有时这些预定义的异常类并不能满足特定业务需求,这时就需要自定义异常类。自定义...
配合图片`Java.jpg`,可能展示的是Java代码编辑器中的一个截图,或者是一个异常处理流程的可视化表示,帮助理解自定义异常在实际项目中的应用。 总的来说,自定义异常是Java开发中不可或缺的一部分,它们提供了更...
在这段代码中,`Javaexception`类包含了对年龄和姓名的设置方法,并且这些方法可能会抛出异常。特别是`setAge`方法中,如果传入的年龄不合法(不在0到150之间),则会抛出自定义异常`MyException`。 #### 三、其他...
本实例将深入探讨如何在Java中自定义异常。 首先,自定义异常通常继承自Java内置的`Exception`类或其子类,如`IOException`, `NullPointerException`等。这使得自定义异常拥有与预定义异常相同的特性,如堆栈跟踪...
Java编程语言中,异常处理是程序健壮性的重要组成部分。异常是程序运行时出现的错误,它们...同时,也可以自定义异常类以适应特定的业务需求。在编写代码时,理解并适当地使用这些异常有助于提高代码的可读性和维护性。
本文将详细介绍如何在 Java 中创建自定义异常类,并通过一个示例来展示如何使用这些自定义异常。 #### 创建自定义异常类 自定义异常类是指开发者根据实际需求自定义的异常类型。在 Java 中,创建自定义异常类通常...
下面将详细介绍如何在Java中定义和使用自定义异常。 首先,让我们了解Java异常的基本概念。Java中的异常是一种事件,它在程序执行过程中发生,中断了正常的控制流程。当出现异常时,程序会抛出一个对象,这个对象...
总之,自定义异常和抛出异常是Java异常处理机制的重要部分,它们帮助开发者更好地管理和报告程序中的错误。通过理解和熟练运用这些概念,可以编写出更健壮、易于维护的代码。在实践中,合理地使用自定义异常和异常...
在Java中可以通过继承Exception类或其子类来创建自定义异常。例如在提供的内容中,sanjiao方法中,如果三角形的三边长度不符合勾股定理,会通过throw new IllegalArgumentException()抛出自定义异常。 4. finally块...
自定义异常类通常继承自`Exception`或其子类,并提供相应的构造函数和方法。下面是一个简单的自定义异常示例: ```java class MyException extends Exception { public MyException(String message) { super...
在Java编程中,自定义异常是开发者为了处理特定情况下的错误或异常状况而创建的类。这个详细教程可能包含了如何在Java中创建和使用自定义异常的实例代码和讲解。以下是一些关于Java自定义异常的重要知识点: 1. **...
Java中的异常处理是编程语言中非常重要的一部分,正确地处理异常可以避免程序的崩溃和错误,而自定义异常打印非堆栈信息则是Java中异常处理的一种重要机制。本文将详细介绍Java如何自定义异常打印非堆栈信息,并提供...