【问题标题】:PhpStorm shows Missing return statement when switch default to throw exception当切换默认抛出异常时,PhpStorm 显示缺少返回语句
【发布时间】:2018-03-03 23:37:17
【问题描述】:

PhpStorm 将此方法标记为“缺少返回语句”警告。

我想知道如何摆脱这个,因为创建提交时的警告等。但没有关闭检查。

我知道我可以在方法结束时抛出异常,并且 PhpStorm 会很满意。

public static function getSomething(string $var)
{
    switch ($var)
    {
        case 1: return something();
        case 2: return somethingElse();
        default: throw new NowSomethingCompletelyDifferentException();
    }
}

我缺少的代码有问题吗?

或者我应该向 JetBrains 提出这个问题?

【问题讨论】:

  • “我知道我可以在方法结束时抛出异常” 考虑到提供的代码示例——这将是最易读的解决方案。 无论如何: 我在 Windows 10 上运行的 PhpStorm 2017.2.4 中的代码中没有看到任何警告。也许您应该提供一个更好的示例(例如整个文件/文件束)并首先在品牌中尝试新项目。

标签: php phpstorm


【解决方案1】:

查看 PHPStorm 文档 Disabling and Enabling InspectionsSuppressing Inspections

禁用和启用检查

在编辑器中禁用对突出显示的问题的检查

当您以这种方式禁用检查时,它们会在当前检查配置文件中被禁用。要重新启用以这种方式禁用的检查,请使用上述主要过程。

在突出显示的问题处设置插入符号。

  1. 单击灯泡图标或按 Alt+Enter 以显示检查 提醒和建议列表。
  2. 选择要禁用的检查,然后单击右箭头按钮 或者直接按右箭头键。
  3. 在子菜单上,单击禁用。

【讨论】:

    【解决方案2】:

    如果真的困扰你,你可以重构

    public static function getSomething(string $var)
    {
      $foo = [1 => 'something', 2 => 'somethingElse'];
    
      $method = $foo[$var];
      if $foo == NULL {
        throw new NowSomethingCompletelyDifferentException();
      }
    
      call_user_func($method);
    }
    

    但我不建议为了满足您的 IDE 而更改代码。仅当您认为此代码更好(可能)时。

    或者您可以在 jetbrains 中提交错误并等待修复。

    【讨论】:

      猜你喜欢
      • 2013-11-30
      • 2019-11-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-16
      • 2017-01-26
      相关资源
      最近更新 更多