例外の英語名を拾う。

例えば、例外が発生したとする。

この時、try catch文のcatch部分に

            catch (System.Exception ex) //全ての例外を拾う。
            {
                MessageBox.Show(ex.Message);
return;
    }
と書くと、例外の内容を日本語で教えてくれる。
  例 : ポート'COM1'へのアクセスが拒否されました。
この内容では、catch文でキャッチできない。。
--
以下のように書くと良い。
            catch (System.Exception ex)
            {
                MessageBox.Show(ex.Message + "\r\n( " + ex.GetType().FullName + " )");
                return;
            }
これで、
  例 : ポート'COM1'へのアクセスが拒否されました。
         ( System.UnauthorizedAccessException )
のように表示されます。

この英語名をヒントにして、個別でのcatchが可能です。

--
            catch (System.UnauthorizedAccessException)
            {
                MessageBox.Show("おそらく、選択されたCOMポートはすでに他のアプリケーションで使用されているよ");
                return;
            }
--