OverflowException クラス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
チェックされたコンテキストで算術演算、キャスト操作、または変換操作がオーバーフローした場合にスローされる例外。
public ref class OverflowException : ArithmeticException
public class OverflowException : ArithmeticException
[System.Serializable]
public class OverflowException : ArithmeticException
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public class OverflowException : ArithmeticException
type OverflowException = class
inherit ArithmeticException
[<System.Serializable>]
type OverflowException = class
inherit ArithmeticException
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type OverflowException = class
inherit ArithmeticException
Public Class OverflowException
Inherits ArithmeticException
- 継承
- 継承
- 属性
注釈
OverflowException は、実行時に次の条件下でスローされます。
算術演算では、演算によって返されるデータ型の範囲外の結果が生成されます。 次の例は、Int32 型の境界をオーバーフローする乗算演算によってスローされる OverflowException を示しています。
int value = 780000000; checked { try { // Square the original value. int square = value * value; Console.WriteLine("{0} ^ 2 = {1}", value, square); } catch (OverflowException) { double square = Math.Pow(value, 2); Console.WriteLine("Exception: {0} > {1:E}.", square, Int32.MaxValue); } } // The example displays the following output: // Exception: 6.084E+17 > 2.147484E+009.
open Checked let v = 780000000 try // Square the original value. let square = v * v printfn $"{v} ^ 2 = {square}" with :? OverflowException -> let square = float v ** 2 printfn $"Exception: {square} > {Int32.MaxValue:E}." // The example displays the following output: // Exception: 6.084E+17 > 2.147484E+009.
Dim value As Integer = 780000000 Try ' Square the original value. Dim square As Integer = value * value Console.WriteLine("{0} ^ 2 = {1}", value, square) Catch e As OverflowException Dim square As Double = Math.Pow(value, 2) Console.WriteLine("Exception: {0} > {1:E}.", _ square, Int32.MaxValue) End Try ' The example displays the following output: ' Exception: 6.084E+17 > 2.147484E+009.
キャスト操作または変換操作では縮小変換が試行され、ソース データ型の値がターゲット データ型の範囲外です。 次の例は、大きな符号なしバイト値を符号付きバイト値に変換しようとした場合にスローされる OverflowException を示しています。
byte value = 241; checked { try { sbyte newValue = (sbyte) value; Console.WriteLine("Converted the {0} value {1} to the {2} value {3}.", value.GetType().Name, value, newValue.GetType().Name, newValue); } catch (OverflowException) { Console.WriteLine("Exception: {0} > {1}.", value, SByte.MaxValue); } } // The example displays the following output: // Exception: 241 > 127.
open Checked let value = 241uy try let newValue = int8 value printfn $"Converted the {value.GetType().Name} value {value} to the {newValue.GetType().Name} value {newValue}." with :? OverflowException -> printfn $"Exception: {value} > {SByte.MaxValue}." // The example displays the following output: // Exception: 241 > 127.
Dim value As Byte = 241 Try Dim newValue As SByte = (CSByte(value)) Console.WriteLine("Converted the {0} value {1} to the {2} value {3}.", _ value.GetType().Name, value, _ newValue.GetType().Name, newValue) Catch e As OverflowException Console.WriteLine("Exception: {0} > {1}.", value, SByte.MaxValue) End Try ' The example displays the following output: ' Exception: 241 > 127.
いずれの場合も、操作の結果は、MinValue
プロパティより小さい値か、操作の結果として得られたデータ型の MaxValue
プロパティより大きい値になります。
算術演算、キャスト操作、または変換操作で OverflowExceptionをスローするには、チェックされたコンテキストで操作を実行する必要があります。 既定では、Visual Basic での算術演算とオーバーフローがチェックされます。C# と F# では、これらはありません。 オフのコンテキストで操作が発生した場合、変換先の型に収まらない上位ビットを破棄することで結果が切り捨てられます。 次の例は、C# または F# でのこのようなオフの変換を示しています。 これは、オフになっているコンテキストで前の例を繰り返します。
byte value = 241;
try {
sbyte newValue = (sbyte) value;
Console.WriteLine("Converted the {0} value {1} to the {2} value {3}.",
value.GetType().Name, value,
newValue.GetType().Name, newValue);
}
catch (OverflowException) {
Console.WriteLine("Exception: {0} > {1}.", value, SByte.MaxValue);
}
// The example displays the following output:
// Converted the Byte value 241 to the SByte value -15.
let value = 241uy
try
let newValue = int8 value
printfn $"Converted the {value.GetType().Name} value {value} to the {newValue.GetType().Name} value {newValue}."
with :? OverflowException ->
printfn $"Exception: {value} > {SByte.MaxValue}."
// The example displays the following output:
// Converted the Byte value 241 to the SByte value -15.
次の Microsoft Intermediate Language (MSIL) 命令では、OverflowExceptionがスローされます。
署名された
を入力する を入力する mul.ovf.
<型>sub.ovf.
<型>newarr
OverflowException では、0x80131516値を持つ HRESULT COR_E_OVERFLOWを使用します。
OverflowExceptionのインスタンスの初期プロパティ値の一覧については、OverflowException コンストラクターを参照してください。
コンストラクター
OverflowException() |
OverflowException クラスの新しいインスタンスを初期化します。 |
OverflowException(SerializationInfo, StreamingContext) |
古い.
シリアル化されたデータを使用して、OverflowException クラスの新しいインスタンスを初期化します。 |
OverflowException(String) |
指定したエラー メッセージを使用して、OverflowException クラスの新しいインスタンスを初期化します。 |
OverflowException(String, Exception) |
指定したエラー メッセージと、この例外の原因である内部例外への参照を使用して、OverflowException クラスの新しいインスタンスを初期化します。 |
プロパティ
Data |
例外に関する追加のユーザー定義情報を提供するキーと値のペアのコレクションを取得します。 (継承元 Exception) |
HelpLink |
この例外に関連付けられているヘルプ ファイルへのリンクを取得または設定します。 (継承元 Exception) |
HResult |
特定の例外に割り当てられるコード化された数値である HRESULT を取得または設定します。 (継承元 Exception) |
InnerException |
現在の例外の原因となった Exception インスタンスを取得します。 (継承元 Exception) |
Message |
現在の例外を説明するメッセージを取得します。 (継承元 Exception) |
Source |
エラーの原因となるアプリケーションまたはオブジェクトの名前を取得または設定します。 (継承元 Exception) |
StackTrace |
呼び出し履歴のイミディエイト フレームの文字列表現を取得します。 (継承元 Exception) |
TargetSite |
現在の例外をスローするメソッドを取得します。 (継承元 Exception) |
メソッド
Equals(Object) |
指定したオブジェクトが現在のオブジェクトと等しいかどうかを判断します。 (継承元 Object) |
GetBaseException() |
派生クラスでオーバーライドされた場合、1 つ以上の後続の例外の根本原因である Exception を返します。 (継承元 Exception) |
GetHashCode() |
既定のハッシュ関数として機能します。 (継承元 Object) |
GetObjectData(SerializationInfo, StreamingContext) |
古い.
派生クラスでオーバーライドされた場合は、例外に関する情報を使用して SerializationInfo を設定します。 (継承元 Exception) |
GetType() |
現在のインスタンスのランタイム型を取得します。 (継承元 Exception) |
MemberwiseClone() |
現在の Objectの簡易コピーを作成します。 (継承元 Object) |
ToString() |
現在の例外の文字列形式を作成して返します。 (継承元 Exception) |
イベント
SerializeObjectState |
古い.
例外に関するシリアル化されたデータを含む例外状態オブジェクトを作成するために例外がシリアル化されるときに発生します。 (継承元 Exception) |
適用対象
こちらもご覧ください
- Exception
- 例外 の処理とスローの
.NET