• java自定义异常类


    自定义异常 : 步骤: ­ 

    一:创建一个类继承于Throwable或其子类; ­ 

    二:添加构造方法; ­ 

    三:在一个方法中使用throw抛出异常 ­ 

    四:在另一个方法中捕获并处理异常 ­ 

    示例: 

    一、继承Exception类 

    Java代码  
    1. public class MyFirstException extends Exception {  
    2. public MyFirstException() {  
    3. super();  
    4. }  
    5. public MyFirstException(String msg) {  
    6. super(msg);  
    7. }  
    8. public MyFirstException(String msg, Throwable cause) {  
    9. super(msg, cause);  
    10. }  
    11. public MyFirstException(Throwable cause) {  
    12. super(cause);  
    13. }  
    14. //自定义异常类的主要作用是区分异常发生的位置,当用户遇到异常时,  
    15. //根据异常名就可以知道哪里有异常,根据异常提示信息进行修改。  
    16. }  



    二、 继承Throwable 类 

    Java代码  
    1. public class MySecondException extends Throwable {  
    2. public MySecondException() {  
    3. super();  
    4. }  
    5. public MySecondException(String msg) {  
    6. super(msg);  
    7. }  
    8. public MySecondException(String msg, Throwable cause) {  
    9. super(msg, cause);  
    10. }  
    11. public MySecondException(Throwable cause) {  
    12. super(cause);  
    13. }  
    14. }  



    三、测试 

    Java代码  
    1. /** 
    2. * 自定义异常类的使用 
    3. * @author new 
    4. * 
    5. */  
    6. public class TestMyException {  
    7. public static void firstException() throws MyFirstException{  
    8. throw new MyFirstException("\"firstException()\" method occurs an exception!");  
    9. }  
    10.   
    11. public static void secondException() throws MySecondException{  
    12. throw new MySecondException("\"secondException()\" method occurs an exception!");  
    13. }  
    14. public static void main(String[] args) {  
    15. try {  
    16. TestMyException.firstException();  
    17. TestMyException.secondException();  
    18. catch (MyFirstException e1){  
    19. System.out.println("Exception: " + e1.getMessage());  
    20. e1.printStackTrace();  
    21. catch (MySecondException e2){  
    22. System.out.println("Exception: " + e2.getMessage());  
    23. e2.printStackTrace();  
    24. }  
    25. //当一个try块后面跟着多个catch块时,如果发生的异常匹配第一个catch块的参数,便将异常处理权利交给第一个catch块。  
    26. //如果发生的异常与第一个catch块不匹配,便看是否与第二个catch块匹配,依次下去,如果到最后依然无法匹配该异常,  
    27. //便需要在方法声明中添加一条throw语句,将该异常抛出。  
    28. //因此,在有多个catch块,而且每次处理的异常类型具有继承关系时,应该首先catch子类异常,再catch父类异常。  
    29. //比如,如果MySecondException继承MyFirstException,那么最好将catch(MySecondException e2)放在前面  
    30. //把catch (MyFirstException e1)放在后面。  
    31. }  
  • 相关阅读:
    ASP.NET刷新页面的六种方法(转)
    为什么用共有属性来封装私有变量
    ASP.NET伪静态及静态
    c#操作xml练习.
    .NET+FCKEditor使用配置_带例子下载(图)
    人生三大陷阱
    ComponentOne FlexGrid for WinForms 中文版快速入门(5)设置单元格类型(下)
    ComponentOne FlexGrid for WinForms 中文版快速入门(2)设计时支持
    ComponentOne FlexGrid for WinForms 中文版快速入门(3)单元格、行列交互
    ComponentOne FlexGrid for WinForms 中文版快速入门(6)—合并单元格
  • 原文地址:https://www.cnblogs.com/winkey4986/p/2285768.html
Copyright © 2020-2023  润新知