`
yuyiming1986
  • 浏览: 63664 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

如何编写一个自定义的Exception类

阅读更多
如何编写一个自定义的Exception类


1.编写自定义异常类实际上是继承一个API标准异常类,用新定义的异常处理信息覆盖原有信息的过程。

  至少要继承Throwable或Throwable的子类(Exception),然后编写两个构造函数,一个无参构造函数,另一个提供描述异常信息字符串参数的构造函数。

  在继承任何异常时,将自动继承Throwable类的一些标准特性,如:
      错误消息
      栈跟踪
      异常包装



2.代码示例:

class SomeException extends Exception{
	
	
	public SomeException(){
	}
	
	public SomeException(String s){
		super(s);
	}
}


3.在显示异常信息的时候,其实就是调用异常对象的toString()方法
 +SomeException(String s)
       |
       +super(s):SomeException
            |
            +super(s):Exception
                |
                +detailMessage = s:Throwable


  所以说在throw new SomeException(String s)抛出异常时,异常描述信息,被延着继承链一直往基类方向传递(SomeException->Exception->Throwable),在输出异常信息的时候,会调用异常对象的toString()方法。

  在Throwable当中toString()定义如下:
 
public String toString() {
        String s = getClass().getName();
        String message = getLocalizedMessage();
        return (message != null) ? (s + ": " + message) : s;
  }


  而message来自于detailMessage,所以说,异常描述信息,最终会以"类的全限名:异常描述信息"的方式打印出来,再打印出堆栈当中函数调用链的信息。
分享到:
评论

相关推荐

    c# 自定义异常 Exception

    以下是一个简单的自定义异常类的示例: ```csharp public class CustomException : Exception { public CustomException() : base() { } public CustomException(string message) : base(message) { } ...

    实现一个自定义异常类IntegerException

    在深入探讨如何实现一个自定义异常类`IntegerException`之前,我们先理解一下在Java编程语言中异常处理的重要性。异常处理是程序设计中一个至关重要的部分,它允许程序员捕获和响应程序运行时可能发生的错误情况,...

    Java《面向对象程序设计》实验报告六

    接着,我们定义了一个名为`Person`的自定义类,包含两个私有变量:`name`(字符串类型,表示姓名)和`age`(整型,表示年龄)。这两个变量都是私有的,意味着它们不能直接从类外部访问。为了能够对外提供接口,我们...

    Oracle Exception汇总(自定义Oracle异常)

    12. **PROGRAM_ERROR** (ORA-06510): 这是一个表示PL/SQL内部错误的异常,可能是因为语法错误、类型不匹配或其他编程错误。需要检查并修复PL/SQL代码。 13. **ROWTYPE_MISMATCH** (ORA-06504): 当宿主游标变量和PL/...

    自定义异常类步骤

    例如,在给定的代码示例中,`myException`类除了继承自`Exception`外,还添加了一个名为`Age`的属性,用于存储导致异常的具体年龄值。 #### 步骤3:构造函数设计 为了能够初始化自定义异常对象,并传递必要的错误...

    Java异常处理-自定义异常类及课后练习

    在编写自定义异常时,应确保异常类的名称能清楚地表明异常的原因,同时,提供适当的构造器和错误信息,以便在处理异常时,能够快速理解错误的来源和原因。 总的来说,熟练掌握自定义异常是提升Java编程技能的关键...

    自定义异常

    例如,我们可以创建一个名为`InvalidInputException`的类,表示输入数据无效: ```java public class InvalidInputException extends Exception { public InvalidInputException(String message) { super...

    struts2自定义编写转换类

    通常,Struts2框架内置了一些基本类型的转换器,但有时我们需要对特定的数据类型进行自定义转换,这时就需要编写自定义的转换类。下面将详细讲解如何在Struts2中实现自定义转换类。 首先,了解Struts2的转换机制。...

    Java自定义异常类的实例详解

    下面是一个自定义异常类`MyException`的实例: ```java class MyException extends Exception { private int detail; MyException(int a) { detail = a; } public String toString() { return "MyException...

    如何用C#在VS2005中创建自己的Exception详解

    这里,我们定义了一个名为`MyCustomException`的新类,它继承自`Exception`类。我们提供了四个构造函数:默认构造函数、带消息的构造函数、带内嵌异常的构造函数以及用于序列化的构造函数。 三、使用自定义异常 1. ...

    Python自定义一个异常类的方法

    那么就可以通过直接或间接的继承Exception就可以自定义一个异常类,当然也可以间接的继承python内置的异常类。 通常的做法是,先为自己的模块创建一个基类,然后再从此基类派生其他异常类,这样不但清晰明

    Java自定义异常源代码

    在Java编程语言中,异常处理是一项关键特性,用于处理程序运行时可能出现的错误或不正常情况。...通过理解异常的继承体系,编写自定义异常类,以及正确地抛出和处理异常,我们可以构建更加健壮和易用的Java应用程序。

    编写一个JAVA的队列类

    ### 编写一个JAVA的队列类 #### 概述 队列是一种基本的数据结构,遵循先进先出(FIFO)原则,即最先加入队列的元素将最先被移除。队列通常用于多线程编程、任务调度、缓存管理等场景。本文将详细介绍如何在Java中...

    一个JSP自定义标签的例子。格式化基础数据

    本文将通过一个具体的例子来介绍如何创建并使用JSP自定义标签进行数据格式化处理。 #### 二、JSP自定义标签简介 JSP自定义标签本质上是一段封装好的代码,可以被多次重复利用。通过定义自定义标签,开发者可以将...

    java Exception

    Java将所有类型的错误统一抽象成对象,并将这些对象组织在一个层次结构中,该结构的根类为`Throwable`。`Throwable`类有两个主要的子类:`Error`和`Exception`。 - **Error**:通常用于指示系统级错误,这类错误...

    自定义一个异常类模板的简单实例

    最后,我们编写一个测试类`Student`,它从用户那里获取分数,并尝试调用`CheckScore`类的`check()`方法。如果在检查过程中抛出`MyException`,我们需要捕获它并处理: ```java package 自定义异常; import java....

    javaException_JAVA源码_

    最后,我们创建了一个自定义异常类`CustomException`,并在`main`方法中通过`throw`语句抛出这个自定义异常,演示了如何使用自定义异常。 理解并熟练运用Java异常处理机制对于编写健壮、可维护的代码至关重要。它...

    Netty中Marshalling编解码自定义栈应用

    接着,你需要创建两个类:一个是继承自 `ChannelInboundHandlerAdapter` 的解码器,另一个是继承自 `MessageToByteEncoder` 的编码器。 在解码器中,你需要重写 `channelRead` 方法,调用 Marshalling 库提供的解码...

Global site tag (gtag.js) - Google Analytics