読者です 読者をやめる 読者になる 読者になる

PhpStorm 2016.3 の例外インスペクションどうしたらいい?

こんな記事を書いたんですが、正直、PhpStorm で RuntimeException の後処理がうまく表現できなくて困っています。

qiita.com

Runtime も含んでどんな例外でもそのままスローだと @throws \Exception が必要って言われる。主語がでかすぎてやだ。 f:id:tanakahisateru:20161208192012p:plain

Java は構文的に、例外の捕捉忘れがないことが明確にわかるので、この catch には RuntimeException レベルのものしか来ないはずってことがハッキリわかる。なので同じことやっても throws Exception が必要とは言われない。

irof.hateblo.jp

いろふさん thanks

横流しするだけなのに throw と書くからそこに反応するの? ってことで、try-finally で書いてみた。そしたら今度は到達しない行があることを認識してくれない。これバグ?

f:id:tanakahisateru:20161208192006p:plain

どうも try-catch の構文があってようやく大域脱出があることを認識してくれる。けど IDE が未成熟なせいで回避するために実効力のあるコードに余計なものが入るのはいや。(doc コメントならしかたないけど)

f:id:tanakahisateru:20161208193443p:plain

究極的にはこれが正解? しんどい。

f:id:tanakahisateru:20161208192005p:plain

うーん、せっかくあるこれオフにするか、それとも... f:id:tanakahisateru:20161208201854p:plain

f:id:tanakahisateru:20161208202153p:plain

ちゃうねん、Exception 型の throw は RuntimeException | LogicException を意図した可能性があるから 単に無視して欲しい。@throws \Exception なんて書いても、PHP だと誰も幸せにならないから。

うーん... https://youtrack.jetbrains.com/issues/WI?q=throws%20%23Bug

まあ、アプリケーションレベルでは RuntimeException まわりのややこしい問題扱う時点で負けで、それは横断的な関心として分離するのが正解なんで、今のややこしい状況は逆に関心分離のチャンスかもですけどね。

f:id:tanakahisateru:20161208204837p:plain