异常处理(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)

springmvc 自定义异常处理

springmvc利用HandlerExceptionResolver处理程序的异常,包括处理映射映射异常,数据绑定,处理器执行过程中发生的异常public interface HandlerExce...
  • yingxiake
  • yingxiake
  • 2016年04月14日 11:27
  • 4422

springmvc的自定义异常处理

一、自定义异常类:对于不同的异常类型定义异常类,继承Exception CustomException.java package com.sky.ssm.exception; /** * 系...
  • Sunking_Yin
  • Sunking_Yin
  • 2016年10月06日 16:21
  • 2285

C++中自定义异常的抛出与捕获

有几年没用C++了,好些细节的地方都记不清了。现在需要用C++操作wxWidgets做一个系统软件。 想起C++的异常捕获和处理,与Java和C#有些不同的地方,C++中一般全部 用自己定义的异常类...
  • DavidGabriel
  • DavidGabriel
  • 2016年11月10日 23:47
  • 1470

tp5 ThinkPhp5 自定义异常处理类(先留坑

//我先写点前期的准备,先留坑,后面有机会把他写完,填坑完 在项目的开发过程中异常抛出尤为重要不仅能够做出友好提示帮助掩盖我们伟大的程序员们尴尬的瞬间,还能做到提示开发人员代...
  • whulovely
  • whulovely
  • 2017年09月18日 21:37
  • 683

C++异常处理类与自定义异常处理类

例1:自定义一个继承自excepton的异常类myException C++标准中,定义在中的任何异常类都派生自exception Class,本例也只是简单地由exception继承,在try...
  • makenothing
  • makenothing
  • 2015年01月29日 16:44
  • 11795

Java异常处理-----自定义异常

自定义异常 问题:现实中会出现新的病,就需要新的描述。 分析: java的面向对象思想将程序中出现的特有问题进行封装。 案例: 定义功能模拟凌波登录。(例如:lb(S...
  • duruiqi_fx
  • duruiqi_fx
  • 2016年07月24日 16:54
  • 8180

C#中自定义异常

 在写方法时,是否遇见数据输入的错误呢.如果字符串格式不能转换成整型的什么.不过处理这些错误的异常,.Net已经都帮我们写好了.但是如果一个字符串输入你想判断他是不是二进制数..这种异常你会怎么处理呢...
  • yubo35033720
  • yubo35033720
  • 2007年05月22日 08:40
  • 4476

java异常处理之自定义异常类

    在实际开发中,开发人员往往需要定义一些异常类用于描述自身程序中的异常信息,以区分其他程序的异常信息。就需要自定义异常类。        实现自定义异常类的方法如下:    1、类java.la...
  • zhouyong80
  • zhouyong80
  • 2007年11月29日 20:22
  • 25512

springmvc 自定义异常处理机制

本篇文章,我们讲解如何在springmvc中自定义异常处理机制,本文只是讲解一些基础的配置和用法,偏实用型 首先,我们看一下错误页面结构: 接下来,我们讲解具体的配置流程 1、首先,我们需要定义异...
  • u012195899
  • u012195899
  • 2016年09月08日 16:36
  • 1938

Spring Cloud zuul自定义统一异常处理实现

Zuul在springcloud微服务体系中提供filer和router功能,是微服务不可或缺的部分。filer处理默认实现的外还可以自定义进行授权、限流、安全校验等,router完全可以替代Ngin...
  • vakinge
  • vakinge
  • 2017年12月03日 23:12
  • 938
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:异常处理(005)_如何自定义异常
举报原因:
原因补充:

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