private static boolean isThrowing(PsiCaseLabelElement label) {
    PsiCaseLabelElementList caseLabelList = tryCast(label.getParent(), PsiCaseLabelElementList.class);
    if (caseLabelList == null) return false;
    PsiSwitchLabelStatementBase labelStatement = tryCast(caseLabelList.getParent(), PsiSwitchLabelStatementBase.class);
    if (labelStatement == null) return false;
    if (labelStatement instanceof PsiSwitchLabeledRuleStatement) {
      return ControlFlowUtils.stripBraces(((PsiSwitchLabeledRuleStatement)labelStatement).getBody()) instanceof PsiThrowStatement;
    }
    if (labelStatement instanceof PsiSwitchLabelStatement) {
      PsiElement cur = labelStatement;
      while(true) {
        PsiElement next = cur.getNextSibling();
        if (!(next instanceof PsiComment) && !(next instanceof PsiWhiteSpace) && !(next instanceof PsiSwitchLabelStatement)) {
          return next instanceof PsiThrowStatement;
        }
        cur = next;
      }
    }
    return false;
  }
private static boolean isThrowing(PsiCaseLabelElement label)