投稿者 魔界の仮面弁士  (社会人) 投稿日時 2020/10/6 12:25:15
> 別の例外理由でもSystem.IO.IOExceptionが出るとなると、上記前提は使えません。

たとえば、「デバイスの準備ができていません。」も IOException となることがあります。
文字通り、入出力(Input-Output)に対する汎用例外に過ぎません。

ファイル入出力に対しては、IOException 以外にも
様々な例外が起こりえます。たとえば、UnauthorizedAccessException など。
https://docs.microsoft.com/ja-jp/dotnet/standard/io/handling-io-errors?WT.mc_id=DT-MVP-8907


> ex.Message以外で例外の理由を区別する方法はありますか?
HResult で絞り込めるかと思います。
http://rucio.cloudapp.net/ThreadDetail.aspx?ThreadId=30283