気が付けばそこに例外

System.Windows.Forms.SystemInformation とか、触ると例外がでることがあります。
たとえば、上記クラスには MenuFont という現在の Windows のメニュー用のフォントを取得する static なプロパティがありますが、Microsoft .NET Framework の System.Drawing.Font クラスは

  • TrueType フォント
  • TrueType Outline を持つ OpenType フォント

しか扱えませんが、Windows そのものは

  • Windows 3.0 形式のビットマップフォント
  • TrueType フォント
  • TrueType Outline を持つ OpenType フォント
  • Postscript Outline を持つ OpenType フォント

といったフォントが扱えるため、.NET の System.Drawing.Font で扱えないフォントを設定している環境では SystemInformation.MenuFont プロパティを使用すると例外が飛ぶんですね。