NullReferenceException NullReferenceException NullReferenceException NullReferenceException Class

Définition

Exception levée au moment d'une tentative de suppression de la référence à une référence d'objet null.The exception that is thrown when there is an attempt to dereference a null object reference.

public ref class NullReferenceException : SystemException
[System.Runtime.InteropServices.ComVisible(true)]
[System.Serializable]
public class NullReferenceException : SystemException
type NullReferenceException = class
    inherit SystemException
Public Class NullReferenceException
Inherits SystemException
Héritage
NullReferenceExceptionNullReferenceExceptionNullReferenceExceptionNullReferenceException
Attributs

Remarques

Un NullReferenceException exception est levée lorsque vous essayez d’accéder à un membre sur un type dont la valeur est null.A NullReferenceException exception is thrown when you try to access a member on a type whose value is null. Un NullReferenceException exception généralement reflète l’erreur de développement et n’est levée dans les scénarios suivants :A NullReferenceException exception typically reflects developer error and is thrown in the following scenarios:

  • Vous avez oublié d’instancier un type référence.You've forgotten to instantiate a reference type. Dans l’exemple suivant, names est déclarée mais jamais instanciée :In the following example, names is declared but never instantiated:

    using System;
    using System.Collections.Generic;
    
    public class Example
    {
       public static void Main(string[] args)
       {
          int value = Int32.Parse(args[0]);
          List<String> names;
          if (value > 0)
             names = new List<String>();
          
          names.Add("Major Major Major");       
       }
    }
    // Compilation displays a warning like the following:
    //    Example1.cs(10) : warning BC42104: Variable //names// is used before it 
    //    has been assigned a value. A null reference exception could result 
    //    at runtime.
    //    
    //          names.Add("Major Major Major")
    //          ~~~~~
    // The example displays output like the following output:
    //    Unhandled Exception: System.NullReferenceException: Object reference 
    //    not set to an instance of an object.
    //       at Example.Main()
    
    Imports System.Collections.Generic
    
    Module Example
       Public Sub Main()
          Dim names As List(Of String)
          names.Add("Major Major Major")       
       End Sub
    End Module
    ' Compilation displays a warning like the following:
    '    Example1.vb(10) : warning BC42104: Variable 'names' is used before it 
    '    has been assigned a value. A null reference exception could result 
    '    at runtime.
    '    
    '          names.Add("Major Major Major")
    '          ~~~~~
    ' The example displays output like the following output:
    '    Unhandled Exception: System.NullReferenceException: Object reference 
    '    not set to an instance of an object.
    '       at Example.Main()
    

    Certains compilateurs émet un avertissement quand ils compilent ce code.Some compilers issue a warning when they compile this code. D’autres génère une erreur et la compilation échoue.Others issue an error, and the compilation fails. Pour résoudre ce problème, instanciez l’objet afin que sa valeur n’est plus null.To address this problem, instantiate the object so that its value is no longer null. L’exemple suivant fait cela en appelant le constructeur de classe d’un type.The following example does this by calling a type's class constructor.

    using System;
    using System.Collections.Generic;
    
    public class Example
    {
       public static void Main()
       {
          List<String> names = new List<String>();
          names.Add("Major Major Major");
       }
    }
    
    Imports System.Collections.Generic
    
    Module Example
       Public Sub Main()
          Dim names As New List(Of String)()
          names.Add("Major Major Major")       
       End Sub
    End Module
    
  • Vous avez oublié de dimensions du tableau avant son initialisation.You've forgotten to dimension an array before initializing it. Dans l’exemple suivant, values est déclaré comme étant un tableau d’entiers, mais le nombre d’éléments qu’il contient n’est jamais spécifié.In the following example, values is declared to be an integer array, but the number of elements that it contains is never specified. La tentative d’initialisation de ses valeurs levées par conséquent un NullReferenceException exception.The attempt to initialize its values therefore thrown a NullReferenceException exception.

    using System;
    
    public class Example
    {
       public static void Main()
       {
           int[] values = null;
           for (int ctr = 0; ctr <= 9; ctr++)
              values[ctr] = ctr * 2;
              
           foreach (var value in values)
              Console.WriteLine(value);   
       }
    }
    // The example displays the following output:
    //    Unhandled Exception: 
    //       System.NullReferenceException: Object reference not set to an instance of an object.
    //       at Example.Main()
    
    Module Example
       Public Sub Main()
           Dim values() As Integer
           For ctr As Integer = 0 To 9
              values(ctr) = ctr * 2
           Next
              
           For Each value In values
              Console.WriteLine(value)
           Next      
       End Sub
    End Module
    ' The example displays the following output:
    '    Unhandled Exception: 
    '       System.NullReferenceException: Object reference not set to an instance of an object.
    '       at Example.Main()
    

    Vous pouvez éliminer l’exception en déclarant le nombre d’éléments dans le tableau avant son initialisation, comme dans l’exemple suivant.You can eliminate the exception by declaring the number of elements in the array before initializing it, as the following example does.

    using System;
    
    public class Example
    {
       public static void Main()
       {
           int[] values = new int[10];
           for (int ctr = 0; ctr <= 9; ctr++)
              values[ctr] = ctr * 2;
              
           foreach (var value in values)
              Console.WriteLine(value);   
       }
    }
    // The example displays the following output:
    //    0
    //    2
    //    4
    //    6
    //    8
    //    10
    //    12
    //    14
    //    16
    //    18
    
    Module Example
       Public Sub Main()
           Dim values(9) As Integer
           For ctr As Integer = 0 To 9
              values(ctr) = ctr * 2
           Next
              
           For Each value In values
              Console.WriteLine(value)
           Next      
       End Sub
    End Module
    ' The example displays the following output:
    '    0
    '    2
    '    4
    '    6
    '    8
    '    10
    '    12
    '    14
    '    16
    '    18
    

    Pour plus d’informations sur la déclaration et initialisation des tableaux, consultez tableaux et tableaux.For more information on declaring and initializing arrays, see Arrays and Arrays.

  • Vous obtenez un null retourner la valeur d’une méthode, puis appeler une méthode sur le type retourné.You get a null return value from a method, and then call a method on the returned type. Il s’agit parfois le résultat d’une erreur de documentation ; Échec de la documentation de noter qu’un appel de méthode peut retourner null.This sometimes is the result of a documentation error; the documentation fails to note that a method call can return null. Dans d’autres cas, votre code à tort part du principe que la méthode retourne toujours un non -null valeur.In other cases, your code erroneously assumes that the method will always return a non-null value.

    Le code dans l’exemple suivant suppose que le Array.Find méthode retourne toujours Person de l’objet dont la propriété FirstName champ correspond à une chaîne de recherche.The code in the following example assumes that the Array.Find method always returns Person object whose FirstName field matches a search string. Comme il n’existe aucune correspondance, le runtime lève un NullReferenceException exception.Because there is no match, the runtime throws a NullReferenceException exception.

    using System;
    
    public class Example
    {
       public static void Main()
       {
          Person[] persons = Person.AddRange( new String[] { "Abigail", "Abra", 
                                              "Abraham", "Adrian", "Ariella", 
                                              "Arnold", "Aston", "Astor" } );    
          String nameToFind = "Robert";
          Person found = Array.Find(persons, p => p.FirstName == nameToFind);
          Console.WriteLine(found.FirstName);
       }
    }
    
    public class Person
    {
       public static Person[] AddRange(String[] firstNames) 
       {
          Person[] p = new Person[firstNames.Length];
          for (int ctr = 0; ctr < firstNames.Length; ctr++)
             p[ctr] = new Person(firstNames[ctr]);
    
          return p;
       }
       
       public Person(String firstName)
       {
          this.FirstName = firstName;
       } 
       
       public String FirstName;
    }
    // The example displays the following output:
    //       Unhandled Exception: System.NullReferenceException: 
    //       Object reference not set to an instance of an object.
    //          at Example.Main()
    
    Module Example
       Public Sub Main()
          Dim persons() As Person = Person.AddRange( { "Abigail", "Abra",
                                                       "Abraham", "Adrian",
                                                       "Ariella", "Arnold", 
                                                       "Aston", "Astor" } )    
          Dim nameToFind As String = "Robert"
          Dim found As Person = Array.Find(persons, Function(p) p.FirstName = nameToFind)
          Console.WriteLine(found.FirstName)
       End Sub
    End Module
    
    Public Class Person
       Public Shared Function AddRange(firstNames() As String) As Person()
          Dim p(firstNames.Length - 1) As Person
          For ctr As Integer = 0 To firstNames.Length - 1
             p(ctr) = New Person(firstNames(ctr))
          Next   
          Return p
       End Function
       
       Public Sub New(firstName As String)
          Me.FirstName = firstName
       End Sub 
       
       Public FirstName As String
    End Class
    ' The example displays the following output:
    '       Unhandled Exception: System.NullReferenceException: 
    '       Object reference not set to an instance of an object.
    '          at Example.Main()
    

    Pour résoudre ce problème, tester la valeur de retour de la méthode pour vous assurer qu’il n’est pas null avant d’appeler une de ses membres, comme dans l’exemple suivant.To address this problem, test the method's return value to ensure that it is not null before calling any of its members, as the following example does.

    using System;
    
    public class Example
    {
       public static void Main()
       {
          Person[] persons = Person.AddRange( new String[] { "Abigail", "Abra", 
                                              "Abraham", "Adrian", "Ariella", 
                                              "Arnold", "Aston", "Astor" } );    
          String nameToFind = "Robert";
          Person found = Array.Find(persons, p => p.FirstName == nameToFind);
          if (found != null)
             Console.WriteLine(found.FirstName);
          else
             Console.WriteLine("{0} not found.", nameToFind);   
       }
    }
    
    public class Person
    {
       public static Person[] AddRange(String[] firstNames) 
       {
          Person[] p = new Person[firstNames.Length];
          for (int ctr = 0; ctr < firstNames.Length; ctr++)
             p[ctr] = new Person(firstNames[ctr]);
    
          return p;
       }
       
       public Person(String firstName)
       {
          this.FirstName = firstName;
       } 
       
       public String FirstName;
    }
    // The example displays the following output:
    //        Robert not found
    
    Module Example
       Public Sub Main()
          Dim persons() As Person = Person.AddRange( { "Abigail", "Abra",
                                                       "Abraham", "Adrian",
                                                       "Ariella", "Arnold", 
                                                       "Aston", "Astor" } )    
          Dim nameToFind As String = "Robert"
          Dim found As Person = Array.Find(persons, Function(p) p.FirstName = nameToFind)
          If found IsNot Nothing Then
             Console.WriteLine(found.FirstName)
          Else
             Console.WriteLine("{0} not found.", nameToFind)
          End If   
       End Sub
    End Module
    
    Public Class Person
       Public Shared Function AddRange(firstNames() As String) As Person()
          Dim p(firstNames.Length - 1) As Person
          For ctr As Integer = 0 To firstNames.Length - 1
             p(ctr) = New Person(firstNames(ctr))
          Next   
          Return p
       End Function
       
       Public Sub New(firstName As String)
          Me.FirstName = firstName
       End Sub 
       
       Public FirstName As String
    End Class
    ' The example displays the following output:
    '       Robert not found
    
  • Vous utilisez une expression (par exemple, vous êtes chaînage une liste de méthodes ou propriétés) pour récupérer une valeur et, bien que vous vérifiez si la valeur est null, le runtime lève toujours une NullReferenceException exception.You're using an expression (for example, you're chaining a list of methods or properties together) to retrieve a value and, although you're checking whether the value is null, the runtime still throws a NullReferenceException exception. Cela se produit car une des valeurs intermédiaires dans l’expression renvoie null.This occurs because one of the intermediate values in the expression returns null. Par conséquent, votre test pour null n’est jamais évalué.As a result, your test for null is never evaluated.

    L’exemple suivant définit un Pages objet qui met en cache des informations sur les pages web, qui sont présentées par Page objets.The following example defines a Pages object that caches information about web pages, which are presented by Page objects. Le Example.Main méthode vérifie si la page web actuelle possède un titre non null et, le cas échéant, affiche le titre.The Example.Main method checks whether the current web page has a non-null title and, if it does, displays the title. Malgré cette vérification, toutefois, la méthode lève un NullReferenceException exception.Despite this check, however, the method throws a NullReferenceException exception.

    using System;
    
    public class Example
    {
       public static void Main()
       {
          var pages = new Pages();
          if (! String.IsNullOrEmpty(pages.CurrentPage.Title)) {
             String title = pages.CurrentPage.Title;
             Console.WriteLine("Current title: '{0}'", title);
          }
       }
    }
    
    public class Pages 
    {
       Page[] page = new Page[10];
       int ctr = 0;
       
       public Page CurrentPage
       {
          get { return page[ctr]; }
          set {
             // Move all the page objects down to accommodate the new one.
             if (ctr > page.GetUpperBound(0)) {
                for (int ndx = 1; ndx <= page.GetUpperBound(0); ndx++)
                   page[ndx - 1] = page[ndx];
             }    
             page[ctr] = value;
             if (ctr < page.GetUpperBound(0))
                ctr++; 
          }
       }
       
       public Page PreviousPage
       {
          get {
             if (ctr == 0) { 
                if (page[0] == null)
                   return null;
                else
                   return page[0];
             }
             else {
                ctr--;
                return page[ctr + 1];
             }
          }
       }         
    }
    
    public class Page
    {
       public Uri URL;
       public String Title;
    }
    // The example displays the following output:
    //    Unhandled Exception: 
    //       System.NullReferenceException: Object reference not set to an instance of an object.
    //       at Example.Main()
    
    Module Example
       Public Sub Main()
          Dim pages As New Pages()
          Dim title As String = pages.CurrentPage.Title
       End Sub
    End Module
    
    Public Class Pages 
       Dim page(9) As Page
       Dim ctr As Integer = 0
       
       Public Property CurrentPage As Page
          Get
             Return page(ctr)
          End Get
          Set
             ' Move all the page objects down to accommodate the new one.
             If ctr > page.GetUpperBound(0) Then
                For ndx As Integer = 1 To page.GetUpperBound(0)
                   page(ndx - 1) = page(ndx)
                Next
             End If    
             page(ctr) = value
             If ctr < page.GetUpperBound(0) Then ctr += 1 
          End Set
       End Property
       
       Public ReadOnly Property PreviousPage As Page
          Get
             If ctr = 0 Then 
                If page(0) Is Nothing Then
                   Return Nothing
                Else
                   Return page(0)
                End If   
             Else
                ctr -= 1
                Return page(ctr + 1)
             End If
          End Get
       End Property         
    End Class
    
    Public Class Page
       Public URL As Uri
       Public Title As String
    End Class
    ' The example displays the following output:
    '    Unhandled Exception: 
    '       System.NullReferenceException: Object reference not set to an instance of an object.
    '       at Example.Main()
    

    L’exception est levée car pages.CurrentPage retourne null si aucune information de page est stockée dans le cache.The exception is thrown because pages.CurrentPage returns null if no page information is stored in the cache. Cette exception peut être corrigée en vérifiant la valeur de la CurrentPage propriété avant de les récupérer en cours Page l’objet Title propriété, comme l’exemple suivant fait :This exception can be corrected by testing the value of the CurrentPage property before retrieving the current Page object's Title property, as the following example does:

    using System;
    
    public class Example
    {
       public static void Main()
       {
          var pages = new Pages();
          Page current = pages.CurrentPage;
          if (current != null) {  
             String title = current.Title;
             Console.WriteLine("Current title: '{0}'", title);
          }
          else {
             Console.WriteLine("There is no page information in the cache.");
          }   
       }
    }
    // The example displays the following output:
    //       There is no page information in the cache.
    
    Module Example
       Public Sub Main()
          Dim pages As New Pages()
          Dim current As Page = pages.CurrentPage
          If current IsNot Nothing Then 
             Dim title As String = current.Title
             Console.WriteLine("Current title: '{0}'", title)
          Else
             Console.WriteLine("There is no page information in the cache.")
          End If   
       End Sub
    End Module
    ' The example displays the following output:
    '       There is no page information in the cache.
    
  • Vous êtes énumérer les éléments d’un tableau qui contient les types référence et que votre tentative de processus de l’un des éléments lève un NullReferenceException exception.You're enumerating the elements of an array that contains reference types, and your attempt to process one of the elements throws a NullReferenceException exception.

    L’exemple suivant définit un tableau de chaînes.The following example defines a string array. Un for instruction énumère les éléments dans le tableau et appelle de chaque chaîne Trim méthode avant d’afficher la chaîne.A for statement enumerates the elements in the array and calls each string's Trim method before displaying the string.

    using System;
    
    public class Example
    {
       public static void Main()
       {
          String[] values = { "one", null, "two" };
          for (int ctr = 0; ctr <= values.GetUpperBound(0); ctr++)
             Console.Write("{0}{1}", values[ctr].Trim(), 
                           ctr == values.GetUpperBound(0) ? "" : ", "); 
          Console.WriteLine();
       }
    }
    // The example displays the following output:
    //    Unhandled Exception: 
    //       System.NullReferenceException: Object reference not set to an instance of an object.
    //       at Example.Main()
    
    Module Example
       Public Sub Main()
          Dim values() As String = { "one", Nothing, "two" }
          For ctr As Integer = 0 To values.GetUpperBound(0)
             Console.Write("{0}{1}", values(ctr).Trim(), 
                           If(ctr = values.GetUpperBound(0), "", ", ")) 
          Next
          Console.WriteLine()
       End Sub
    End Module
    ' The example displays the following output:
    '    Unhandled Exception: System.NullReferenceException: 
    '       Object reference not set to an instance of an object.
    '       at Example.Main()
    

    Cette exception se produit si vous supposez que chaque élément du tableau doit contenir une valeur non null, et la valeur de l’élément de tableau est en fait null.This exception occurs if you assume that each element of the array must contain a non-null value, and the value of the array element is in fact null. L’exception peut être éliminée en vérifiant si l’élément est null avant d’effectuer toute opération sur cet élément, comme dans l’exemple suivant montre.The exception can be eliminated by testing whether the element is null before performing any operation on that element, as the following example shows.

    using System;
    
    public class Example
    {
       public static void Main()
       {
          String[] values = { "one", null, "two" };
          for (int ctr = 0; ctr <= values.GetUpperBound(0); ctr++)
             Console.Write("{0}{1}", 
                           values[ctr] != null ? values[ctr].Trim() : "", 
                           ctr == values.GetUpperBound(0) ? "" : ", "); 
          Console.WriteLine();
       }
    }
    // The example displays the following output:
    //       one, , two
    
    Module Example
       Public Sub Main()
          Dim values() As String = { "one", Nothing, "two" }
          For ctr As Integer = 0 To values.GetUpperBound(0)
             Console.Write("{0}{1}", 
                           If(values(ctr) IsNot Nothing, values(ctr).Trim(), ""), 
                           If(ctr = values.GetUpperBound(0), "", ", ")) 
          Next
          Console.WriteLine()
       End Sub
    End Module
    ' The example displays the following output:
    '       one, , two
    
  • Un NullReferenceException exception est levée par une méthode qui est passée null.A NullReferenceException exception is thrown by a method that is passed null. Certaines méthodes valider les arguments qui leur sont transmis.Some methods validate the arguments that are passed to them. Si elle fait et un des arguments est null, la méthode lève un System.ArgumentNullException exception.If they do and one of the arguments is null, the method throws an System.ArgumentNullException exception. Sinon, elle lève une NullReferenceException exception.Otherwise, it throws a NullReferenceException exception. L’exemple suivant illustre ce scénario.The following example illustrates this scenario.

    using System;
    using System.Collections.Generic;
    
    public class Example
    {
       public static void Main()
       {
          List<String> names = GetData();
          PopulateNames(names);
       }
    
       private static void PopulateNames(List<String> names)
       {
          String[] arrNames = { "Dakota", "Samuel", "Nikita",
                                "Koani", "Saya", "Yiska", "Yumaevsky" };
          foreach (var arrName in arrNames)
             names.Add(arrName);
       }
       
       private static List<String> GetData() 
       {
          return null;   
       
       }
    }
    // The example displays output like the following:
    //    Unhandled Exception: System.NullReferenceException: Object reference 
    //    not set to an instance of an object.
    //       at Example.PopulateNames(List`1 names)
    //       at Example.Main()
    
    Imports System.Collections.Generic
    
    Module Example
       Public Sub Main()
          Dim names As List(Of String) = GetData()
          PopulateNames(names)
       End Sub
       
       Private Sub PopulateNames(names As List(Of String))
          Dim arrNames() As String = { "Dakota", "Samuel", "Nikita",
                                       "Koani", "Saya", "Yiska", "Yumaevsky" }
          For Each arrName In arrNames
             names.Add(arrName)
          Next
       End Sub
       
       Private Function GetData() As List(Of String)
          Return Nothing   
       End Function
    End Module
    ' The example displays output like the following:
    '    Unhandled Exception: System.NullReferenceException: Object reference 
    '    not set to an instance of an object.
    '       at Example.PopulateNames(List`1 names)
    '       at Example.Main()
    

    Pour résoudre ce problème, assurez-vous que l’argument passé à la méthode n’est pas null, ou gérer l’exception levée dans un try…catch…finally bloc.To address this issue, make sure that the argument passed to the method is not null, or handle the thrown exception in a try…catch…finally block. Pour plus d'informations, consultez Exceptions.For more information, see Exceptions.

Microsoft suivantes lèvent instructions intermediate language (MSIL) NullReferenceException: callvirt, cpblk, cpobj, initblk, ldelem.<type>, ldelema, ldfld, ldflda, ldind.<type> , ldlen, stelem.<type>, stfld, stind.<type>, throw, et unbox.The following Microsoft intermediate language (MSIL) instructions throw NullReferenceException: callvirt, cpblk, cpobj, initblk, ldelem.<type>, ldelema, ldfld, ldflda, ldind.<type>, ldlen, stelem.<type>, stfld, stind.<type>, throw, and unbox.

NullReferenceException utilise le HRESULT COR_E_NULLREFERENCE dont la valeur est 0 x 80004003.NullReferenceException uses the HRESULT COR_E_NULLREFERENCE, which has the value 0x80004003.

Pour obtenir la liste des valeurs initiales des propriétés d’une instance de NullReferenceException, consultez le NullReferenceException constructeurs.For a list of initial property values for an instance of NullReferenceException, see the NullReferenceException constructors.

Gère l’exception NullReferenceException dans le code de mise en productionHandling NullReferenceException in release code

Il est généralement préférable d’éviter une exception NullReferenceException que pour le gérer après qu’il se produit.It's usually better to avoid a NullReferenceException than to handle it after it occurs. La gestion d'une exception peut compliquer la tenue à jour et la compréhension de votre code. En outre, cela peut parfois introduire d'autres bogues.Handling an exception can make your code harder to maintain and understand, and can sometimes introduce other bugs. Une exception NullReferenceException est souvent une erreur non récupérable.A NullReferenceException is often a non-recoverable error. Dans ce cas, la meilleure alternative peut consister à laisser l'exception arrêter l'application.In these cases, letting the exception stop the app might be the best alternative.

Toutefois, il existe de nombreuses situations où la gestion de l'erreur peut être utile.However, there are many situations where handling the error can be useful:

  • Votre application peut ignorer des objets dont la valeur est null.Your app can ignore objects that are null. Par exemple, si votre application récupère et traite des enregistrements dans une base de données, vous pouvez ignorer un certain nombre d'enregistrements incorrects qui engendrent des objets null.For example, if your app retrieves and processes records in a database, you might be able to ignore some number of bad records that result in null objects. L'enregistrement de données incorrectes dans un fichier journal ou dans l'interface utilisateur de l'application peut être la solution.Recording the bad data in a log file or in the application UI might be all you have to do.

  • Vous pouvez vous remettre d'une exception.You can recover from the exception. Par exemple, un appel d'un service web retournant un type de référence peut retourner la valeur null si la connexion est perdue ou expire. Vous pouvez tenter de rétablir la connexion et réessayer l'appel.For example, a call to a web service that returns a reference type might return null if the connection is lost or the connection times out. You can attempt to reestablish the connection and try the call again.

  • Vous pouvez restaurer l'état valide de votre application.You can restore the state of your app to a valid state. Par exemple, vous pouvez effectuer une tâche en plusieurs étapes nécessitant l'enregistrement d'informations dans une banque de données avant d'appeler une méthode qui lève une exception NullReferenceException.For example, you might be performing a multi-step task that requires you to save information to a data store before you call a method that throws a NullReferenceException. Si l'objet non initialisé risque d'endommager l'enregistrement des données, supprimez les données précédentes avant de fermer l'application.If the uninitialized object would corrupt the data record, you can remove the previous data before you close the app.

  • Vous voulez signaler l'exception.You want to report the exception. Par exemple, si l'erreur a été provoquée par une erreur de l'utilisateur de votre application, vous pouvez générer un message pour l'aider à fournir les informations correctes.For example, if the error was caused by a mistake from the user of your app, you can generate a message to help him supply the correct information. Vous pouvez également enregistrer des informations sur l'erreur pour vous aider à corriger le problème.You can also log information about the error to help you fix the problem. Certaines infrastructures, comme ASP.NET, disposent d'un gestionnaire d'exceptions de haut niveau qui capture toutes les erreurs pour éviter tout blocage de l'application. Dans ce cas, la journalisation de l'exception peut représenter pour vous la seule façon de savoir que cela se produit.Some frameworks, like ASP.NET, have a high-level exception handler that captures all errors to that the app never crashes; in that case, logging the exception might be the only way you can know that it occurs.

Constructeurs

NullReferenceException() NullReferenceException() NullReferenceException() NullReferenceException()

Initialise une nouvelle instance de la classe NullReferenceException, en affectant un message système décrivant l'erreur, tel que « La valeur null a été trouvée à l'emplacement où une instance d'un objet était requise. », à la propriété Message de la nouvelle instance.Initializes a new instance of the NullReferenceException class, setting the Message property of the new instance to a system-supplied message that describes the error, such as "The value 'null' was found where an instance of an object was required." Ce message prend en compte la culture système en cours.This message takes into account the current system culture.

NullReferenceException(SerializationInfo, StreamingContext) NullReferenceException(SerializationInfo, StreamingContext) NullReferenceException(SerializationInfo, StreamingContext) NullReferenceException(SerializationInfo, StreamingContext)

Initialise une nouvelle instance de la classe NullReferenceException avec des données sérialisées.Initializes a new instance of the NullReferenceException class with serialized data.

NullReferenceException(String) NullReferenceException(String) NullReferenceException(String) NullReferenceException(String)

Initialise une nouvelle instance de la classe NullReferenceException avec un message d'erreur spécifié.Initializes a new instance of the NullReferenceException class with a specified error message.

NullReferenceException(String, Exception) NullReferenceException(String, Exception) NullReferenceException(String, Exception) NullReferenceException(String, Exception)

Initialise une nouvelle instance de la classe NullReferenceException avec un message d'erreur spécifié et une référence à l'exception interne ayant provoqué cette exception.Initializes a new instance of the NullReferenceException class with a specified error message and a reference to the inner exception that is the cause of this exception.

Propriétés

Data Data Data Data

Obtient une collection de paires clé/valeur qui fournissent des informations supplémentaires définies par l’utilisateur sur l’exception.Gets a collection of key/value pairs that provide additional user-defined information about the exception.

(Inherited from Exception)
HelpLink HelpLink HelpLink HelpLink

Obtient ou définit un lien vers le fichier d'aide associé à cette exception.Gets or sets a link to the help file associated with this exception.

(Inherited from Exception)
HResult HResult HResult HResult

Obtient ou définit HRESULT, valeur numérique codée qui est assignée à une exception spécifique.Gets or sets HRESULT, a coded numerical value that is assigned to a specific exception.

(Inherited from Exception)
InnerException InnerException InnerException InnerException

Obtient l'instance Exception qui a provoqué l'exception actuelle.Gets the Exception instance that caused the current exception.

(Inherited from Exception)
Message Message Message Message

Obtient un message qui décrit l'exception actuelle.Gets a message that describes the current exception.

(Inherited from Exception)
Source Source Source Source

Obtient ou définit le nom de l'application ou de l'objet qui est à l'origine de l'erreur.Gets or sets the name of the application or the object that causes the error.

(Inherited from Exception)
StackTrace StackTrace StackTrace StackTrace

Obtient une représentation sous forme de chaîne des frames immédiats sur la pile des appels.Gets a string representation of the immediate frames on the call stack.

(Inherited from Exception)
TargetSite TargetSite TargetSite TargetSite

Obtient la méthode qui lève l'exception actuelle.Gets the method that throws the current exception.

(Inherited from Exception)

Méthodes

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

Détermine si l'objet spécifié est identique à l'objet actuel.Determines whether the specified object is equal to the current object.

(Inherited from Object)
GetBaseException() GetBaseException() GetBaseException() GetBaseException()

En cas de substitution dans une classe dérivée, retourne la Exception qui est à l'origine d'une ou de plusieurs exceptions ultérieures.When overridden in a derived class, returns the Exception that is the root cause of one or more subsequent exceptions.

(Inherited from Exception)
GetHashCode() GetHashCode() GetHashCode() GetHashCode()

Fait office de fonction de hachage par défaut.Serves as the default hash function.

(Inherited from Object)
GetObjectData(SerializationInfo, StreamingContext) GetObjectData(SerializationInfo, StreamingContext) GetObjectData(SerializationInfo, StreamingContext) GetObjectData(SerializationInfo, StreamingContext)

En cas de substitution dans une classe dérivée, définit SerializationInfo avec des informations sur l'exception.When overridden in a derived class, sets the SerializationInfo with information about the exception.

(Inherited from Exception)
GetType() GetType() GetType() GetType()

Obtient le type au moment de l'exécution de l'instance actuelle.Gets the runtime type of the current instance.

(Inherited from Exception)
MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

Crée une copie superficielle du Object actuel.Creates a shallow copy of the current Object.

(Inherited from Object)
ToString() ToString() ToString() ToString()

Crée et retourne une chaîne représentant l'exception actuelle.Creates and returns a string representation of the current exception.

(Inherited from Exception)

Événements

SerializeObjectState SerializeObjectState SerializeObjectState SerializeObjectState

Se produit quand une exception est sérialisée pour créer un objet d'état d'exception qui contient des données sérialisées concernant l'exception.Occurs when an exception is serialized to create an exception state object that contains serialized data about the exception.

(Inherited from Exception)

S’applique à

Voir aussi