代码之家  ›  专栏  ›  技术社区  ›  Sergiy Belozorov Mohaiminul Islam

开发库时断言vs异常

  •  4
  • Sergiy Belozorov Mohaiminul Islam  · 技术社区  · 15 年前

    用户

    到目前为止,我只在私有的内部函数和方法中使用断言,因此只通知 关于 我的错误 在图书馆里面。在库用户错误使用的情况下,我总是抛出一个带有错误描述的异常(以及如何避免它的建议)。

    你认为这是一个正确的方法吗?如果不是,那么在开发库时,您对断言和异常使用哪条经验法则?

    2 回复  |  直到 9 年前
        1
  •  5
  •   Alex F    15 年前

    是的,这是正确的方法。断言可以在私有函数中内部使用。如果客户机使用不正确的参数调用public方法,则应引发异常。错误的代码必须立即使程序崩溃,这是修复错误的最佳机会。 对于预期的情况(找不到文件、设备没有响应等)和调用程序错误(如参数值不正确),最好使用不同的异常类型。客户端代码应该捕获预期的异常,而不处理意外的异常。当抛出意外异常时,客户机程序崩溃,程序员只需修复错误。

    但是,如果您的库是为同一家公司的内部使用而编写的,那么可以使用断言来处理公共方法调用错误,比如private。但这种方法必须受到严格限制,不应用于外部客户。

        2
  •  1
  •   zabulus    15 年前

    断言在发布程序集中不起作用,异常是向库用户发出错误信号的唯一方法