OverflowException Classe
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
L’exception levée lorsqu’une opération arithmétique, de cast ou de conversion dans un contexte vérifié entraîne un dépassement de capacité.
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
- Héritage
- Héritage
- Attributs
Remarques
Une OverflowException est levée au moment de l’exécution dans les conditions suivantes :
Une opération arithmétique produit un résultat qui se trouve en dehors de la plage du type de données retourné par l’opération. L’exemple suivant illustre la OverflowException levée par une opération de multiplication qui dépasse les limites du type Int32.
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.
Une opération de conversion ou de conversion tente d’effectuer une conversion étroite, et la valeur du type de données source est en dehors de la plage du type de données cible. L’exemple suivant illustre la OverflowException levée par la tentative de conversion d’une valeur d’octet non signée volumineuse en valeur d’octet signé.
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.
Dans chaque cas, le résultat de l’opération est une valeur inférieure à la propriété MinValue
ou supérieure à la propriété MaxValue
du type de données qui résulte de l’opération.
Pour que l’opération arithmétique, de conversion ou de conversion lève une OverflowException, l’opération doit se produire dans un contexte vérifié. Par défaut, les opérations arithmétiques et les dépassements de capacité en Visual Basic sont vérifiés ; en C# et F#, ce n’est pas le cas. Si l’opération se produit dans un contexte non vérifié, le résultat est tronqué en ignorant les bits de commande élevé qui ne correspondent pas au type de destination. L’exemple suivant illustre une conversion non vérifiée en C# ou F#. Il répète l’exemple précédent dans un contexte non vérifié.
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.
Les instructions MSIL (Microsoft Intermediate Language) suivantes lèvent une OverflowException:
add.ovf.
< > signéconv.ovf.
<de taper>conv.ovf.
<de taper>.un
mul.ovf.
<type>sub.ovf.
<type>newarr
OverflowException utilise le COR_E_OVERFLOW HRESULT, qui a la valeur 0x80131516.
Pour obtenir la liste des valeurs de propriété initiales d’une instance de OverflowException, consultez les constructeurs OverflowException.
Constructeurs
OverflowException() |
Initialise une nouvelle instance de la classe OverflowException. |
OverflowException(SerializationInfo, StreamingContext) |
Obsolète.
Initialise une nouvelle instance de la classe OverflowException avec des données sérialisées. |
OverflowException(String) |
Initialise une nouvelle instance de la classe OverflowException avec un message d’erreur spécifié. |
OverflowException(String, Exception) |
Initialise une nouvelle instance de la classe OverflowException avec un message d’erreur spécifié et une référence à l’exception interne qui est la cause de cette exception. |
Propriétés
Data |
Obtient une collection de paires clé/valeur qui fournissent des informations supplémentaires définies par l’utilisateur sur l’exception. (Hérité de Exception) |
HelpLink |
Obtient ou définit un lien vers le fichier d’aide associé à cette exception. (Hérité de Exception) |
HResult |
Obtient ou définit HRESULT, valeur numérique codée affectée à une exception spécifique. (Hérité de Exception) |
InnerException |
Obtient l’instance Exception qui a provoqué l’exception actuelle. (Hérité de Exception) |
Message |
Obtient un message qui décrit l’exception actuelle. (Hérité de Exception) |
Source |
Obtient ou définit le nom de l’application ou de l’objet qui provoque l’erreur. (Hérité de Exception) |
StackTrace |
Obtient une représentation sous forme de chaîne des images immédiates sur la pile des appels. (Hérité de Exception) |
TargetSite |
Obtient la méthode qui lève l’exception actuelle. (Hérité de Exception) |
Méthodes
Equals(Object) |
Détermine si l’objet spécifié est égal à l’objet actuel. (Hérité de Object) |
GetBaseException() |
En cas de substitution dans une classe dérivée, retourne la Exception qui est la cause racine d’une ou plusieurs exceptions ultérieures. (Hérité de Exception) |
GetHashCode() |
Sert de fonction de hachage par défaut. (Hérité de Object) |
GetObjectData(SerializationInfo, StreamingContext) |
Obsolète.
En cas de substitution dans une classe dérivée, définit l'SerializationInfo avec des informations sur l’exception. (Hérité de Exception) |
GetType() |
Obtient le type d’exécution de l’instance actuelle. (Hérité de Exception) |
MemberwiseClone() |
Crée une copie superficielle du Objectactuel. (Hérité de Object) |
ToString() |
Crée et retourne une représentation sous forme de chaîne de l’exception actuelle. (Hérité de Exception) |
Événements
SerializeObjectState |
Obsolète.
Se produit lorsqu’une exception est sérialisée pour créer un objet d’état d’exception qui contient des données sérialisées sur l’exception. (Hérité de Exception) |
S’applique à
Voir aussi
- Exception
- gestion et levée des exceptions