zoukankan      html  css  js  c++  java
  • 错误处理与异常处理

    1. 异常处理的打包及自定义异常类

    ACMEPort port = new ACMEPort(12);
    
    try {
        port.open();
    } catch (DeviceResponseException e) {
        reportPortError(e);
        logger.log("Device response exception", e);
    } catch (ATM212UnlockedException e) {
        reportPortError(e);
        logger.log("unlock exception", e);  
    } catch (GMXError e) {
        reportPortError(e);
        logger.log("Device response exception", e);
    } finally {
        ...
    }

    重复的代码就是坏味道,为了代码结构更为清晰,有两处修改方向:

    • 将重复的异常处理,打包成一个类的成员函数;
    • 自定义异常类 PortDeviceFailure,其构造函数接受(DeviceResponseException、ATM212UnlockedException、GMXError 具体异常类的)父类(如 ACMEException)引用;

      LocalPort port = new LocalPort(12);
      
      try {
          port.open();
      } catch (PortDeviceFailure e) {
          reportPortError(e);
          logger.log(e.getMessage(), e);
      }
      
      
      public class LocalPort {
          private ACMEPort innerPort;
      
          public LocalPort(int portNum) {
              innerPort = new ACMEPort(portNum);
          }
      
          try {
              innerPort.open();
          } catch (DeviceResponseException e) {
              throw new PortDeviceFailure (e);
          } catch (ATM212UnlockedException e) {
              throw new PortDeviceFailure (e);
          } catch (GMXError e) {
              throw new PortDeviceFailure (e);
          }
      }
      
      public class PortDeviceFailure extends Exception {
          private ACMEException acmeExce;
          public PortDeviceFailure (ACMEException exce) {
              acmeExce = exce;
          }
          public String getMessage () {
              return ....;
          }
      }
  • 相关阅读:
    advanceInstaller安装文件的ICON
    advanceInstaller制作中文安装界面
    vc对话框程序运行时隐藏
    VC++6.0 打印调试信息
    js使用正则表达式实现文本框只能输入数字和小数点
    Flexbox制作CSS布局实现水平垂直居中
    微信js SDK接口
    QQ JS_SDk相关功能接口
    github代码管理工具的使用方法
    webpack打包压缩工具的使用方法
  • 原文地址:https://www.cnblogs.com/mtcnn/p/9421050.html
Copyright © 2011-2022 走看看