异常处理(005)_如何自定义异常

转载 2016年08月31日 11:14:36

1、如何定义自己的异常

Java支持自己创建的异常。了解异常看这里:什么是java中的异常

方法如下:

1、所有的异常必须是Throwable的子类。
2、如果想写一个检查异常,需要扩展Exception类
3、如果想编写一个运行时异常,则需要扩展RuntimeException类
4、异常类与任何其他类一样,可以包含字段方法
我们可以定义如下自己的异常处理类:
[java] view plain copy
 在CODE上查看代码片派生到我的代码片
  1. class MyException extends Exception{  
  2. }  
例子:
[java] view plain copy
 在CODE上查看代码片派生到我的代码片
  1. import java.io.*;  
  2.   
  3. public class InsufficientFundsException extends Exception  
  4. {  
  5. private double amount;  
  6. public InsufficientFundsException(double amount)  
  7. {  
  8. this.amount = amount;  
  9. }  
  10. public double getAmount()  
  11. {  
  12. return amount;  
  13. }  
  14. }  
为了证明我们的使用用户定义的异常,下面的CheckingAccount类包含一个withdraw()方法抛出一个InsufficientFundsException。
[java] view plain copy
 在CODE上查看代码片派生到我的代码片
  1. import java.io.*;  
  2.   
  3. public class CheckingAccount  
  4. {  
  5. private double balance;  
  6. private int number;  
  7. public CheckingAccount(int number)  
  8. {  
  9. this.number = number;  
  10. }  
  11. public void deposit(double amount)  
  12. {  
  13. balance += amount;  
  14. }  
  15. public void withdraw(double amount) throws  
  16. InsufficientFundsException  
  17. {  
  18. if(amount <= balance)  
  19. {  
  20. balance -= amount;  
  21. }  
  22. else  
  23. {  
  24. double needs = amount - balance;  
  25. throw new InsufficientFundsException(needs);  
  26. }  
  27. }  
  28. public double getBalance()  
  29. {  
  30. return balance;  
  31. }  
  32. public int getNumber()  
  33. {  
  34. return number;  
  35. }  
  36. }  
下面BankDemo程序演示调用deposit()和withdraw() 方法。
[java] view plain copy
 在CODE上查看代码片派生到我的代码片
  1. public class BankDemo  
  2. {  
  3. public static void main(String [] args)  
  4. {  
  5. CheckingAccount c = new CheckingAccount(101);  
  6. System.out.println("Depositing $500...");  
  7. c.deposit(500.00);  
  8. try  
  9. {  
  10. System.out.println("  
  11. Withdrawing $100...");  
  12. c.withdraw(100.00);  
  13. System.out.println("  
  14. Withdrawing $600...");  
  15. c.withdraw(600.00);  
  16. }catch(InsufficientFundsException e)  
  17. {  
  18. System.out.println("Sorry, but you are short $"  
  19. + e.getAmount());  
  20. e.printStackTrace();  
  21. }  
  22. }  
  23. }  
编译所有上述三个文件并运行BankDemo,这将产生以下结果:
Depositing $500...

Withdrawing $100...

Withdrawing $600...
Sorry, but you are short $200.0
InsufficientFundsException
at CheckingAccount.withdraw(CheckingAccount.java:25)
at BankDemo.main(BankDemo.java:13)

相关文章推荐

VS自定义异常处理窗口

  • 2017年07月17日 12:11
  • 37KB
  • 下载

springmvc 自定义异常处理

springmvc利用HandlerExceptionResolver处理程序的异常,包括处理映射映射异常,数据绑定,处理器执行过程中发生的异常public interface HandlerExce...

Java自定义异常处理

  • 2012年06月27日 11:39
  • 141KB
  • 下载

Springboot自定义异常处理

背景 Springboot 默认把异常的处理集中到一个ModelAndView中了,但项目的实际过程中,这样做,并不能满足我们的要求。具体的自定义异常的处理,参看以下 前提 Springboot...

Springboot自定义异常处理

背景 Springboot 默认把异常的处理集中到一个ModelAndView中了,但项目的实际过程中,这样做,并不能满足我们的要求。具体的自定义异常的处理,参看以下 前提 Springboot...

七天学会ASP.NET MVC (六)——线程问题、异常处理、自定义URL

本节又带了一些常用的,却很难理解的问题,本节从文件上传功能的实现引出了线程使用,介绍了线程饥饿的解决方法,异常处理方法,了解RouteTable自定义路径 。系列文章七天学会ASP.NET MVC (...

SpringMVC自定义拦截器与异常处理

一、SpringMVC 中的Interceptor 拦截器也是相当重要和相当有用的。 它的主要作用是拦截用户的请求并进行相应的处理,通常还有如下作用:  (1)日志记录  (2)权限检查  (...

Spring MVC自定义统一异常处理类,并且在控制台中输出错误日志

在使用SimpleMappingExceptionResolver实现统一异常处理后(参考Spring MVC的异常统一处理方法),发现出现异常时,log4j无法在控制台输出错误日志。因此需要自定义一...

asp.net 自定义异常处理

★ 自定义异常处理 //自定义异常处理类 using System; using System.Diagnostics; namespace MyAppException ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:异常处理(005)_如何自定义异常
举报原因:
原因补充:

(最多只允许输入30个字)