2010-09-01から1ヶ月間の記事一覧

System.InvalidCastException

i

無効なキャストまたは明示的な型変換に対してスローされる例外。[実験ソース(C#)]using System; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { //Char から Boolean、Single、Double、Decimal、または DateTime への…

System.InsufficientMemoryException

i

使用可能なメモリが十分に残っているかどうかのチェックで、要件が満たされなかった場合にスローされます。[実験ソース(C#)]using System; using System.Runtime; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { Memor…

System.StackOverflowException と System.InsufficientExecutionStackException

S i

入れ子になったメソッド呼び出しが多くなりすぎ、実行スタックがオーバーフローした場合にスローされる例外。[実験ソース(C#)]using System; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { Console.WriteLine(f(decim…

System.IndexOutOfRangeException

i

配列の境界外のインデックスを使用して配列の要素にアクセスしようとした場合にスローされる例外。[実験ソース(C#)]using System; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { int[] a = new int[3]; for (int i = …

System.FormatException

F

引数の書式が、呼び出されたメソッドのパラメーターの仕様に一致していない場合にスローされる例外。[実験ソース(C#)]using System; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { DateTime dt = DateTime.Parse("12/…

System.DuplicateWaitObjectException

D

同期オブジェクトの配列に 1 つのオブジェクトが 2 回以上現れた場合にスローされる例外。[実験ソース(C#)] using System; using System.Threading; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { AutoResetEvent e =…

System.EntryPointNotFoundException

E

開始メソッドが指定されていないことが原因でクラスの読み込みに失敗した場合にスローされる例外。[実験ソース(C#)] using System; using System.Runtime.InteropServices; namespace ConsoleApplication1 { class Program { [DllImport(@"..\..\..\ClassLib…

System.DllNotFoundException

D

DLL インポートで指定した DLL が見つからない場合にスローされる例外。[実験ソース(C#)] using System; using System.Runtime.InteropServices; namespace ConsoleApplication1 { class Program { [DllImport("win32.dll", CharSet = CharSet.Unicode)] pub…

System.CannotUnloadAppDomainException

C

アプリケーション ドメインをアンロードしようとして失敗した場合にスローされる例外。 二重に Unload しようとした場合も発生するようだが、そちらは単純なので置いておく。 今回は、子プログラムが終了に「もたつく」ケースを実験。[実験ソース(C#)] まず…

System.BadImageFormatException (その3 異なる .NET Frameworkのバージョン)

B

ダイナミック リンク ライブラリ (DLL) または実行可能プログラムのファイル イメージが無効である場合にスローされる例外。 今回は、.NET Framework 4.0 で作成したDLLを、.NET Framework 2.0 のプログラムでLoadしようとした時に発生する例外を検証。[実験…

System.BadImageFormatException (その2 x64 と x86)

B

ダイナミック リンク ライブラリ (DLL) または実行可能プログラムのファイル イメージが無効である場合にスローされる例外。 今回は、x64 用に作成したDLLを x86 プログラムで呼び出した場合の例外を実験。[実験ソース(C#) DLL側] using System; namespace C…

System.BadImageFormatException (その1 DLLのLoad)

B

ダイナミック リンク ライブラリ (DLL) または実行可能プログラムのファイル イメージが無効である場合にスローされる例外。 今回は、Windows システム DLLを、.NET Framework アセンブリであるかのように読み込もうとした場合におきる例外を実験。[実験ソー…

System.ArrayTypeMismatchException

A

間違った型の要素を配列に格納しようとするとスローされる例外。[実験ソース(C#)] using System; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { string[] a = { "1", "2" }; object[] b = (object[])a; b[1] = 3; } }…

System.ArithmeticException

A

算術演算、キャスト演算、または変換演算におけるエラーが原因でスローされる例外。 ただし、DivideByZeroException、NotFiniteNumberException、および OverflowException の基本クラスなので、より詳細なエラーはそちらになる。[実験ソース(C#)]using Syst…

System.OverflowException (checked と unchecked)

O

OverflowException がらみで、もう1つ例。[実験ソース(C#)] using System; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { Console.WriteLine(AddOne(int.MaxValue)); } static int AddOne(int a) { return a + 1; } }…

System.OverflowException

O

算術演算、キャスト演算、または変換演算の結果オーバーフローが発生した場合にスローされる例外。[実験ソース(C#)] using System; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { decimal a = 12345678901; Console.W…

System.DivideByZeroException

D

整数値または小数値を 0 で除算しようとするとスローされる例外。[実験ソース(C#)] using System; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { double a = 0; Console.WriteLine(10.0 / a); // +∞ int b = 0; Conso…