在自定义异常时,应如何派生?必须在Throwable类层次结构中派生,否则将不能在应用程序中传播异常。另外,不能从Throwable直接派生。Throwable为两类主要问题(Exception和Error)提供行为基础,不能为这棵继承树定义新分支。一般也不要直接继承Error或其任何子类,因为自定义异常通常不符合错误标准(即适当应用程序不应试图捕获的严重问题)。
一般我们自己定义的异常分为检查型异常checked(编译时异常:Exception和它的子类)和非检查型异常non-checked(运行时异常:RuntimeException和它的子类)。
以下两个例子表明的区别是:除非派生一个非检测异常类(RuntimeException或Error),否则调用方法的任何对象随后将按照“处理或声明”规则解决该异常。
RuntimeException:
package baal.exception;
public class BaalException extends RuntimeException {
public BaalException() {
}
public BaalException(String message) {
super(message);
}
}
package baal.exception;
public class Main {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Tester tester=new Tester();
tester.getNo1("baal");
}
}
package baal.exception;
public class Tester {
public void getNo1(String a) {
if("baal".equals(a))throw new BaalException("String is baal");
}
}
运行控制台信息:
Exception in thread "main" baal.exception.BaalException: String is baal
at baal.exception.Tester.getNo1(Tester.java:8)
at baal.exception.Main.main(Main.java:12)
Exception:
package baal.exception;
public class BaalException extends Exception {
public BaalException() {
}
public BaalException(String message) {
super(message);
}
}
package baal.exception;
public class Main {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Tester tester=new Tester();
try {
tester.getNo1("baal");
} catch (BaalException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
package baal.exception;
public class Tester {
public void getNo1(String a) throws BaalException {
if("baal".equals(a))throw new BaalException("String is baal");
}
}
运行控制台的结果:
baal.exception.BaalException: String is baal
at baal.exception.Tester.getNo1(Tester.java:8)
at baal.exception.Main.main(Main.java:13)
分享到:
相关推荐
Java自定义异常处理详细介绍,包括了很多比较经典的案例,可以自己研究自定义异常
23.java自定义异常.zip23.java自定义异常.zip23.java自定义异常.zip23.java自定义异常.zip23.java自定义异常.zip23.java自定义异常.zip23.java自定义异常.zip23.java自定义异常.zip23.java自定义异常.zip23.java...
### JAVA自定义异常类 #### 一、基本概念与应用场景 在Java编程中,异常处理是一种重要的机制,用于处理程序运行时可能出现的各种错误情况。Java提供了丰富的内置异常类,但有时候,内置的异常类可能不足以精确地...
下面我们将深入探讨Java自定义异常及其应用。 首先,自定义异常通常是通过扩展Java内置的`Exception`类或其子类来实现的。`Exception`类是所有可抛出异常的基类,它本身继承自`Throwable`类。创建自定义异常时,...
综上所述,Java自定义异常允许开发者创建符合应用需求的异常类型,提高代码的可读性和可维护性。通过理解异常的继承体系,编写自定义异常类,以及正确地抛出和处理异常,我们可以构建更加健壮和易用的Java应用程序。
总结一下,Java自定义异常是通过创建新的异常类来实现的,这些类通常继承自`Exception`类或其子类。自定义异常可以包含特定的错误信息,并在遇到预期之外的情况时抛出。通过使用自定义异常,开发者可以更好地组织和...
在实际的Java开发项目中,自定义异常是提高代码可读性和可维护性的重要手段。异常处理是程序设计的关键部分,它有助于捕获并处理在程序执行过程中可能出现的错误或异常情况。Java提供了丰富的异常处理机制,包括预...
### Java自定义异常类详解 #### 一、Java异常体系概览 在Java语言中,异常处理机制是一种用于处理程序运行时错误的重要机制。Java中的异常处理基于`java.lang.Throwable`类,它有两个重要的子类:`Exception`和`...
总的来说,Java自定义异常是异常处理机制的一个重要组成部分,它让开发者能够根据具体需求扩展和定制异常处理流程,有效地管理程序运行中的错误情况,从而提升软件的稳定性和可靠性。通过学习和掌握这一技能,开发者...
java 自定义异常--编译异常和运行异常2种;Java异常机制可以保证程序更安全和更健壮。虽说Java类库已经提供很多可以直接处理异常的类,但是有时候为了更加地捕获和处理异常以呈现更好的用户体验,需要开发者自定义...
java自定义异常,java自定义异常的介绍,如何创建自定义异常,如何使用自己创建的自定义异常。
自己编写异常类型 ,自定义错误异常进行全局捕捉。实现项目全局的拦截定义输出。。。
### Java自定义异常类知识点详解 #### 一、概述 在Java编程中,自定义异常是一种常见的编程实践,它能够帮助开发者更精确地控制程序的行为并处理错误情况。通过创建自定义异常类,我们可以根据应用的具体需求来抛...
Java 自定义异常(基础) Java 中的自定义异常是一种特殊的异常类型,由用户自己定义和抛出,而不是由Java语言系统自动监测到的异常。自定义异常可以让开发者更加灵活地处理异常情况,提高程序的健壮性和可靠性。 ...
本文将深入探讨Java自定义异常及其在实际代码中的应用。 首先,Java异常是通过`Exception`类或其子类来表示的。当程序中出现非正常情况时,可以抛出一个异常对象。Java提供了丰富的预定义异常类,如`IOException`, ...
默认情况下,Java提供了很多内置的异常类型,如`NullPointerException`, `IllegalArgumentException`等,但有时这些内置异常并不能满足我们特定业务场景的需求,这时候就需要自定义异常。 自定义异常通常继承自`...
自定义异常和抛出异常是Java异常处理机制的重要组成部分,它们允许开发者更精细地控制程序的错误处理流程。本篇文章将深入探讨这两个概念。 首先,让我们了解什么是自定义异常。Java提供了一套内置的异常类,如`...
本篇将深入探讨Java自定义异常类的实例详解,旨在帮助读者理解和掌握这一技术。 首先,我们了解为什么需要自定义异常类。在Java中,已经提供了许多预定义的异常类,如ArithmeticException、NullPointerException等...
浅谈Java自定义异常在教学中的教与学.pdf
自定义异常是Java异常处理机制中的一个重要组成部分,其在教学和实际软件开发中的重要性不容忽视。 首先,了解自定义异常出现的背景是必要的。Java的标准异常库为开发者提供了丰富的异常类,例如空指针异常、数组...