在实际的工作中,通常需要定义自己功能模块相关的异常,下面一个实例可以实现定义自己的异常:
1.定义一个异常码抽象类作为基类
public abstract class BaseExceptionCode { private String errorMessage ; private int errorCode ; private final BaseExceptionCode display ; public BaseExceptionCode(String errorMessage,int errorCode){ this.errorMessage = errorMessage; this.errorCode = errorCode ; this.display = this ; } public BaseExceptionCode(int errorCode,String errorMessage){ this.errorCode = errorCode ; this.errorMessage = errorMessage ; this.display = this ; } public String getErrorMessage(){ return errorMessage ; } public int getErrorCode(){ return errorCode ; } public BaseExceptionCode getDisplay(){ return display ; } }
2.定义自己的异常码
public class MyExceptionCode extends BaseExceptionCode{ protected MyExceptionCode(String errorMessage,int errorCode){ super(errorMessage,errorCode); } protected MyExceptionCode(int errorCode,String errorMessage){ super(errorCode,errorMessage); } public static final MyExceptionCode E_PARAM_IS_NULL_A = new MyExceptionCode(ConstantWithExceptionMsg.E_PARAM_NULL,ConstantWithExceptionCode.E_PARAM_CODE); public static final MyExceptionCode E_PARAM_IS_NULL_B = new MyExceptionCode(ConstantWithExceptionCode.E_PARAM_CODE,ConstantWithExceptionMsg.E_PARAM_NULL); }
3.定义自己的异常码集合(常量)
/** * 异常码集合 */ public class ConstantWithExceptionCode { public static final int E_PARAM_CODE = 100001 ; }
4.定义自己的异常信息集合(常量)
/** * 异常信息 */ public class ConstantWithExceptionMsg { public static final String E_PARAM_NULL = "参数为空" ; }
5.定义自己的异常
public class MyException extends RuntimeException{ private static final long serialVersionUID = -1933116620478022916L; private String errorMessage ; //异常信息 private MyExceptionCode errorCode ; //异常码 public MyException(MyExceptionCode errorCode){ super(errorCode.getErrorMessage()); this.errorCode = errorCode ; this.errorMessage = errorCode.getErrorMessage(); } public MyException(String errorMessage,MyExceptionCode errorCode){ super(errorMessage); this.errorMessage = errorMessage ; this.errorCode = errorCode ; } public MyException(MyExceptionCode errorCode,String errorMessage){ super(errorMessage); this.errorCode = errorCode; this.errorMessage = errorMessage; } public String getErrorMessage(){ return errorMessage ; } public MyExceptionCode getErrorCode(){ return errorCode ; } }
6.测试自己的异常
public class MyExceptionTest { public static void main(String[] args){ try{ test("",""); }catch(MyException e){ System.out.println(e); throw e ; } } private static void test(String str1,String str2) throws MyException{ if("".equals(str1) || str1 == null || "".equals(str2) || str2 == null ){ throw new MyException(MyExceptionCode.E_PARAM_IS_NULL_A); }else{ return ; } } }
7.测试结果
com.zh.exception.MyException: 参数为空
Exception in thread "main" com.zh.exception.MyException: 参数为空
at com.zh.exception.MyExceptionTest.test(MyExceptionTest.java:16)
at com.zh.exception.MyExceptionTest.main(MyExceptionTest.java:6)
相关推荐
java development part of exception
在编写代码时,应该尽量预见并处理可能的`Exception`,而对于`Error`,我们应该做好日志记录,以便在问题发生时能够快速定位和解决问题。 在实际编程中,还有两种特殊的`Exception`类:`RuntimeException`和`...
通过阅读"More Exceptional C++.chm"和"Exceptional C++.chm",开发者能够深入理解C++异常处理的精髓,从而编写出更加健壮和可靠的代码。学习这些内容对于提高C++编程能力、提升软件质量以及在遇到问题时能快速定位...
### 异常处理知识点解析 #### 一、异常处理概念 ...通过上述分析,我们可以看到,在Java中合理地使用异常处理机制是非常重要的,它不仅能够帮助我们编写更加健壮的程序,还能提高代码的可读性和可维护性。
- **RuntimeException**:这类异常通常是由于程序员的疏忽或者错误导致的,理论上可以通过编写更好的代码来避免。 - 示例:`ArithmeticException`(数学运算异常,如除以零)、`NullPointerException`(空指针异常...
Copy Exception Exception Debug Event unionData GlobalSize Exception Exception 判断开始 Exception pExceptionRecord ExceptionCode = 十六到十 #Exception BreakPoint " int3断点 ExceptCount = ...
总的来说,理解和正确使用已检查异常和未检查异常是编写高质量Java代码的关键。通过深入源码,可以更好地掌握异常处理的底层机制;而利用合适的开发工具,可以简化异常处理的日常工作,提高开发效率。在实际项目中,...
3. **处理异常**:在程序的 `EXCEPTION` 块中编写异常处理代码。例如: ```plsql EXCEPTION WHEN first_exception THEN -- code to handle first exception WHEN second_exception THEN -- code to handle second...
3. 在`MyCustomException.cs`文件中,编写如下代码: ```csharp using System; using System.Runtime.Serialization; namespace CustomExceptionsLibrary { [Serializable] public class MyCustomException : ...
在本案例中,"aop+exception"的测试代码可能涉及到如何在Spring框架中使用AOP来处理异常。 首先,让我们深入了解一下AOP。Spring AOP是Spring框架的一个重要组成部分,它允许开发者定义“切面”,即跨越多个对象的...
`stdexcept`是另一个重要的C++头文件,它包含了异常处理的基础类,如`std::exception`,这是所有C++异常的基类。在编写健壮的代码时,理解和使用异常处理是非常重要的,因为它们允许程序在出现错误时优雅地恢复,而...
开发者可以创建自己的异常类,继承自`std::exception`或直接自定义,以便在特定情况下抛出更有意义的异常。 8. **异常传播**: 如果在`catch`块内部再次抛出异常,原始的异常会被丢弃,新的异常会替代它继续传播...
标题中的"Exception"一词在IT领域中通常指的是程序运行时遇到的错误或异常情况,这是编程和软件开发过程中的一个重要概念。异常是程序执行过程中出现的非正常状态,可能是由于逻辑错误、资源不足或者外部条件不满足...
总之,Java异常处理机制是程序健壮性和稳定性的保障,理解并熟练应用异常处理能够帮助开发者编写出更加可靠和易于维护的代码。在实际开发中,应该根据具体情况选择合适的异常处理策略,避免过度使用`try-catch`,...
在C#编程中,异常处理是一项关键功能,它允许开发者优雅地处理程序运行时可能出现的错误情况。标准的C#库提供了多种内置异常类型,如`System....在编写产品级代码时,合理使用自定义异常是提升软件质量的关键步骤之一。
创建自定义异常,即定义自己的异常类,需要继承`Exception`或其子类。例如: ```java class MyCustomException extends Exception { public MyCustomException(String message) { super(message); } } throw new...
为了避免程序中断,可以使用`EXCEPTION WHEN NO_DATA_FOUND THEN`来捕获并处理这个异常。 2. **TOO_MANY_ROWS** (ORA-01422): 当`SELECT INTO`语句返回多于一行数据时,会出现此异常。在处理时,通常需要修改查询以...
6. **异常处理的最佳实践**:在编写代码时,应该尽可能地捕获和处理预期的异常,避免让它们成为未捕获异常。然而,对于那些无法预见的异常,`UncaughtExceptionHandler`是一个很好的补充。 7. **测试与调试**:在...
5. **选择器错误**:编写错误的CSS选择器,如无效的类名或ID,也可能导致尝试获取元素时出现 "Uncaught DOMException"。 【标签】"源码" 和 "工具" 提示我们这个话题可能与查看或解析网页源码,或者使用某种工具来...
5. **单元测试**:编写详尽的单元测试,覆盖各种边界条件和异常情况,确保程序在不同场景下都能正常运行。 6. **调试**:利用调试器(如Visual Studio的调试器)进行断点设置,单步执行,观察变量状态,以便找出...