- 浏览: 1338142 次
- 性别:
- 来自: 湖南澧縣
文章分类
最新评论
-
虾米小尹:
不行啊!2.2-0.25=1.9500000000000002 ...
JavaScript浮点数运算 —— 精度问题 -
heluping000000:
引用String a= "abc",首先在 ...
String,到底创建了多少个对象? -
mack:
谢谢分享matcher.appendReplacement(s ...
string.replaceAll()中的特殊字符($ \)与matcher.appendReplacement -
wzt3309:
完全理解,比网上其他资料都要详细
String,到底创建了多少个对象? -
u014771876:
Java中十六进制转换 Integer.toHexString()
package test; /** * * //只带错误源的Throwable构造函數 * public Throwable(Throwable cause) { * fillInStackTrace(); * //此时错误消息串为错误根源信息 * detailMessage = (cause==null ? null : cause.toString()); * this.cause = cause; * } *--------------------------------------------------------------------- * Throwable.getMessage(): * //如果未设置错误消息或未设置错误源时返回null * return detailMessage; * * Throwable.toString() 源码: * public String toString() { * String s = getClass().getName(); * String message = getLocalizedMessage(); * return (message != null) ? (s + ": " + message) : s; * } * * Throwable.printStackTrace() 返回格式:toString() + 换行 + 详细堆栈信息 * s.println(this);//调用toString()方法打印错误信息头信息,形如:test.EFinException: 被零除 * * //获取详细堆栈信息,信息格式形如:at Test.main(Test.java:8) * StackTraceElement[] trace = getOurStackTrace(); * for (int i=0; i < trace.length; i++)//循环打印详细堆栈信息 * s.println("\tat " + trace[i]); * * //获取错误源 * Throwable ourCause = getCause(); * if (ourCause != null) * //递归打打印错误根源信息,顺着堆栈往上找,打印的信息形如:Caused by: java.lang.ArithmeticException: / by zero... * ourCause.printStackTraceAsCause(s, trace); * * @author jzj * */ public class CommException extends RuntimeException { private static final long serialVersionUID = -1654371263422869287L; // 错误键,用于前台根据此信息键读取国际化资源,默认值爲null private String errKey; /** * getMessage() 返回 : null * toString() 返回形如: test.EFinException * printStackTrace() 返回形如: * test.EFinException * at test.TestException.testDefault(TestException.java:21) * at test.TestException.main(TestException.java:6) */ public CommException() { super(); } /** * getMessage() 返回 : 被零除 * toString() 返回形如: test.EFinException: 被零除 * printStackTrace() 返回形如: * test.EFinException: 被零除 * at test.TestException.testSetErrmsg(TestException.java:52) * at test.TestException.main(TestException.java:7) * * @param message 错误消息串 */ public CommException(String message) { super(message); } /** * getMessage() 返回 : java.lang.ArithmeticException: / by zero * toString() 返回形如: test.EFinException: java.lang.ArithmeticException: / by zero * printStackTrace() 返回形如: * test.EFinException: java.lang.ArithmeticException: / by zero * at test.TestException.testSetCaused(TestException.java:83) * at test.TestException.main(TestException.java:8) * Caused by: java.lang.ArithmeticException: / by zero * at test.TestException.testSetCaused(TestException.java:80) * ... 1 more * * @param e 错误源 */ public CommException(Throwable e) { super(e); } /** * getMessage() 返回 : 被零除 * toString() 返回形如: test.EFinException: 被零除 * printStackTrace() 返回形如: * test.EFinException: 被零除 * at test.TestException.testSetErrmsgCaused(TestException.java:117) * at test.TestException.main(TestException.java:9) * Caused by: java.lang.ArithmeticException: / by zero * at test.TestException.testSetErrmsgCaused(TestException.java:114) * ... 1 more * * @param message 错误消息串 * @param e 错误源 */ public CommException(String message, Throwable e) { super(message, e); } /** * 设置错误消息键 * * @param errKey * @return */ public CommException setErrKey(String errKey) { this.errKey = errKey; return this; } /** * 返回错误码 * * @return 错误码 */ public String getErrKey() { return this.errKey; } }
package test; public class TestException { public static void main(String[] args) { testDefault(); testSetErrmsg(); testSetCaused(); testSetErrmsgCaused(); } /** * 默认构造函数测试 */ public static void testDefault() { try { System.out.println(1 / 0); } catch (Exception e) { try { throw new CommException(); } catch (CommException e1) { try { //null System.out.println(e1.getMessage()); Thread.sleep(10); System.out.println("-------------------------"); //test.CommException System.out.println(e1.toString()); Thread.sleep(10); System.out.println("-------------------------"); /* *test.CommException * at test.TestException.testDefault(TestException.java:21) * at test.TestException.main(TestException.java:6) */ e1.printStackTrace(); Thread.sleep(10); System.out.println("========================="); } catch (InterruptedException e2) { e2.printStackTrace(); } } } } /** * 只设置错误消息 */ public static void testSetErrmsg() { try { System.out.println(1 / 0); } catch (Exception e) { try { throw new CommException("被零除"); } catch (CommException e1) { try { //被零除 System.out.println(e1.getMessage()); Thread.sleep(10); System.out.println("-------------------------"); //test.CommException: 被零除 System.out.println(e1.toString()); Thread.sleep(10); System.out.println("-------------------------"); /* *test.CommException: 被零除 * at test.TestException.testSetErrmsg(TestException.java:52) * at test.TestException.main(TestException.java:7) */ e1.printStackTrace(); Thread.sleep(10); System.out.println("========================="); } catch (InterruptedException e2) { e2.printStackTrace(); } } } } /** * 只设置错误源 */ public static void testSetCaused() { try { System.out.println(1 / 0); } catch (Exception e) { try { throw new CommException(e); } catch (CommException e1) { try { //java.lang.ArithmeticException: / by zero System.out.println(e1.getMessage()); Thread.sleep(10); System.out.println("-------------------------"); //test.CommException: java.lang.ArithmeticException: / by zero System.out.println(e1.toString()); Thread.sleep(10); System.out.println("-------------------------"); /* *test.CommException: java.lang.ArithmeticException: / by zero * at test.TestException.testSetCaused(TestException.java:83) * at test.TestException.main(TestException.java:8) *Caused by: java.lang.ArithmeticException: / by zero * at test.TestException.testSetCaused(TestException.java:80) * ... 1 more */ e1.printStackTrace(); Thread.sleep(10); System.out.println("========================="); } catch (InterruptedException e2) { e2.printStackTrace(); } } } } /** * 设置错误消息与错误源 */ public static void testSetErrmsgCaused() { try { System.out.println(1 / 0); } catch (Exception e) { try { throw new CommException("被零除", e); } catch (CommException e1) { try { //被零除 System.out.println(e1.getMessage()); Thread.sleep(10); System.out.println("-------------------------"); //test.CommException: 被零除 System.out.println(e1); Thread.sleep(10); System.out.println("-------------------------"); /* *test.CommException: 被零除 * at test.TestException.testSetErrmsgCaused(TestException.java:117) * at test.TestException.main(TestException.java:9) *Caused by: java.lang.ArithmeticException: / by zero * at test.TestException.testSetErrmsgCaused(TestException.java:114) * ... 1 more */ e1.printStackTrace(); Thread.sleep(10); } catch (InterruptedException e2) { e2.printStackTrace(); } } } } }
运行结果:
null
-------------------------
test.CommException
-------------------------
test.CommException
at test.TestException.testDefault(TestException.java:22)
at test.TestException.main(TestException.java:8)
=========================
被零除
-------------------------
test.CommException: 被零除
-------------------------
test.CommException: 被零除
at test.TestException.testSetErrmsg(TestException.java:59)
at test.TestException.main(TestException.java:9)
=========================
java.lang.ArithmeticException: / by zero
-------------------------
test.CommException: java.lang.ArithmeticException: / by zero
-------------------------
test.CommException: java.lang.ArithmeticException: / by zero
at test.TestException.testSetCaused(TestException.java:95)
at test.TestException.main(TestException.java:10)
Caused by: java.lang.ArithmeticException: / by zero
at test.TestException.testSetCaused(TestException.java:92)
... 1 more
=========================
被零除
-------------------------
test.CommException: 被零除
-------------------------
test.CommException: 被零除
at test.TestException.testSetErrmsgCaused(TestException.java:135)
at test.TestException.main(TestException.java:11)
Caused by: java.lang.ArithmeticException: / by zero
at test.TestException.testSetErrmsgCaused(TestException.java:132)
... 1 more
发表评论
-
Java正则表达式
2014-03-14 10:16 1766Java正则表达式详解 作者:jzj 文 ... -
类的初始化与清理
2013-06-24 22:20 1457初始化时内存清零 当创建一个对象时,首先将在堆上为这个对象分 ... -
protected,这个错了吗?
2013-06-24 22:17 1251这几天对protected修饰符有点迷糊,随便找同事要了一本 ... -
Java中BigDecimal的8种舍入模式
2013-06-21 18:42 2186java.math.BigDecimal不可变的、任意精度的 ... -
Tomcat性能参数设置
2010-12-27 15:35 34805默认参数不适合生产环境使用,因此需要修改一些参数 1、 ... -
Java 6 JVM参数选项大全
2010-12-14 11:16 1638http://kenwublog.com/docs/java6 ... -
对象的安全构造
2013-06-21 18:43 1546在构造期间,不要公布“this”引用 一种可以将数据争用引 ... -
Java断言(assert)—— 转
2010-06-20 10:36 12101一、概述 在C和C++语言中都有assert关键,表示断言。 ... -
eclipse调试
2010-06-04 00:11 8084eclipse远程调试 在eclipse3.4前,远程调试时 ... -
protected,你真的理解了吗?
2010-05-09 17:56 2150Java中的访问控制修饰符有四个级别,但属protected最 ... -
利用反射进行深层克隆
2010-05-05 21:02 3670最近在看《effective java ... -
类与类之间的几种关系
2010-05-03 13:49 2419类和类、类和接口、接 ... -
运行java
2010-05-03 13:47 1054用javac命令编译一个打包的类时,如果没有加参数" ... -
Java内存模型与volatile
2010-04-25 13:21 18807内存模型描述的是程序 ... -
中断线程
2010-04-24 21:19 9000中断线程 线程的thread.i ... -
java中的关键字、保留字、标示符
2010-04-07 23:48 3378关键字 Java的关键字对java的编译器有特殊的意义, ... -
Java中的浮点数剖析
2010-04-07 23:27 4727定点数表达法的缺点在于其形式过于僵硬,固定的小数点位置决定了固 ... -
线程间的同步与互斥
2010-03-23 21:29 2305线程间的同步(实指线程间的通信):一般来说,一个线程相对于另 ... -
UTF-16、UTF-16BE、UTF-16LE编码方式的区别
2010-03-23 21:20 9826import java.io.IOException; ... -
final、finally、finalize
2010-01-22 01:15 2430final关键字 先看看final关键字,它可以被用于以下几个 ...
相关推荐
自定义异常可以包含额外的属性,以存储与特定异常相关的更多信息。例如,如果我们的应用经常遇到数据库连接问题,我们可以创建一个`DatabaseConnectionException`,并添加一个`ConnectionString`属性: ```csharp ...
在 Java 中,自定义异常通常继承自 `Exception` 或其子类。例如,你可以创建一个名为 `CustomServiceException` 的异常类,它可能包含特定的错误码和错误信息: ```java public class CustomServiceException ...
这就是“JAVA 自定义异常 Exception”所涉及的内容。 自定义异常是在Java中通过继承`java.lang.Throwable`或其子类(如`Exception`或`Error`)来实现的。通常,我们选择继承`Exception`类,因为它用于表示程序可以...
首先,自定义异常通常是通过扩展Java内置的`Exception`类或其子类来实现的。`Exception`类是所有可抛出异常的基类,它本身继承自`Throwable`类。创建自定义异常时,我们通常会为特定的错误或业务规则定义一个新的...
4. 标签“源码”与自定义异常: 自定义异常的源码编写体现了对编程语言特性的理解。源码中可以包含额外的属性、构造函数和方法,以提供更多的错误信息或者方便异常处理。 5. 标签“工具”与自定义异常: 自定义...
首先,自定义异常通常继承自Java内置的`Exception`类或其子类,如`IOException`, `NullPointerException`等。这使得自定义异常拥有与预定义异常相同的特性,如堆栈跟踪信息和可抛性。我们来看一个名为`...
自定义异常通常继承自Java的`Exception`类或其子类。`Exception`是所有检查型异常(checked exception)的基类,而`RuntimeException`及其子类则代表未检查型异常(unchecked exception)。如果自定义异常属于应用...
Java自定义异常处理详细介绍,包括了很多比较经典的案例,可以自己研究自定义异常
- 自定义异常类通常继承自 `Exception` 或其子类(如 `RuntimeException`)。 - 继承 `Exception` 表示该异常需要被捕获或声明抛出,而继承 `RuntimeException` 则表示该异常无需捕获或声明即可抛出。 2. **添加...
自定义异常类需要继承自`Exception`类或者其子类,例如`RuntimeException`。创建一个自定义异常类,你可以包含构造函数、属性和方法,以满足项目需求。下面是一个简单的自定义异常类的例子: ```java public class ...
安卓APP自定义异常处理器,Release状态下意外奔溃提示更加友好(代替系统默认的那个讨厌的对话框),不影响Debug模式下LogCat的打印。 ************************************************************************ ...
ORACLE 用户自定义异常小例子 1.进入pl/sql测试窗口 2.执行语句 declare empname varchar2(255); customize_exp EXCEPTION; –自定义异常 begin FOR c IN (select d.* from scott.dept d) ...
本文将基于给定的文件信息,深入解析“自定义异常类步骤”这一主题,涵盖异常处理的基本概念、自定义异常类的设计与实现,以及如何在实际代码中应用这些自定义异常。 ### 异常处理概述 异常处理是一种编程机制,...
#### 二、自定义异常设计与实现 自定义异常是Java编程中一个重要的概念。通过自定义异常,开发者可以创建符合特定业务逻辑需求的异常类型,从而使得程序更加健壮、易于维护。 ### 实现自定义异常的步骤: #### ...
如果查询结果中的`cagentname`字段值不是`aaaa`,则抛出自定义异常`e_exception`,并在异常处理块中输出相应的提示信息。 ##### 示例2:处理`NO_DATA_FOUND`异常 ```sql DECLARE tt VARCHAR2(100); BEGIN SELECT...
要定义一个自定义异常,我们需要继承Java的`Exception`类或其子类。例如,如果我们有一个名为`MyException`的自定义异常,代码可能会如下所示: ```java public class MyException extends Exception { public ...
Java 异常处理与自定义异常 Java 异常处理是 Java 编程语言中一个非常重要的概念,它能够帮助开发者捕获和处理程序中出现的错误,以确保程序的稳定运行和安全。Java 平台为我们提供了丰富和完整的异常类,通过这些...
- 自定义异常通常需要继承自`Exception`类或其子类(如`RuntimeException`)。这里以继承`Exception`为例。 - 示例:创建一个名为`CustomerExistsException`的自定义异常类。 ```java public class ...
### JAVA自定义异常类 #### 一、基本概念与应用场景 在Java编程中,异常处理是一种重要的机制,用于处理程序运行时可能出现的各种错误情况。Java提供了丰富的内置异常类,但有时候,内置的异常类可能不足以精确地...
Oracle数据库在处理错误和异常时有一套完整的机制,这些异常主要分为预定义异常和自定义异常。预定义异常是Oracle系统已经内置的一些常见错误,它们都有对应的错误代码(ORA-xxx)。下面,我们将深入探讨一些常见的...