代码之家  ›  专栏  ›  技术社区  ›  Timo

何时应记录例外情况?

  •  4
  • Timo  · 技术社区  · 7 年前

    假设以下代码段:

    public function foo() 
    {
        return $this->dependency->bar();
    }
    

    如果 dependency::bar() 已知会引发异常,但 foo() foo() 有一个 @throws 进入docblock?或者这应该是隐含的?phpdoc文档对此有些模糊。

    假设 dependency 基于接口注入;该接口文件应说明该方法 可以 引发指定的异常。

    异常应该由调用代码处理还是与情况无关?

    语义:)

    1 回复  |  直到 7 年前
        1
  •  2
  •   cn007b Dheerendra Kulkarni    7 年前

    您已经创建了公共函数(每个人都可以使用),在某些情况下,它可能引发异常-因此您肯定必须 @throws 在docblock中输入。
    如果从您的依赖项引发异常-它是您的内部实现,并且是封装的-因此,将使用您的函数的人将不知道您的函数会带来什么。

    在接口注入的情况下,接口必须描述所有异常,因为异常是类行为的一部分,接口必须描述所有可能的行为。

    try-catch 阻止并处理依赖项中的所有异常-在 @投掷