NullReferenceException NullReferenceException NullReferenceException NullReferenceException Class

Definição

A exceção que é gerada quando ocorre uma tentativa de desreferenciar um objeto de referência nula.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
Herança
NullReferenceExceptionNullReferenceExceptionNullReferenceExceptionNullReferenceException
Atributos

Comentários

Uma NullReferenceException exceção é lançada quando você tenta acessar um membro em um tipo cujo valor é null.A NullReferenceException exception is thrown when you try to access a member on a type whose value is null. Uma NullReferenceException exceção normalmente reflete o erro do desenvolvedor e é gerada nos seguintes cenários:A NullReferenceException exception typically reflects developer error and is thrown in the following scenarios:

  • Você esqueceu de criar uma instância de um tipo de referência.You've forgotten to instantiate a reference type. No exemplo a seguir, names é declarado, mas nunca instanciado: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()
    

    Alguns compiladores emitem um aviso quando compilam esse código.Some compilers issue a warning when they compile this code. Outros emitem um erro e a compilação falha.Others issue an error, and the compilation fails. Para resolver esse problema, crie uma instância do objeto para que seu valor não nullseja mais.To address this problem, instantiate the object so that its value is no longer null. O exemplo a seguir faz isso chamando o construtor de classe de um tipo.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
    
  • Você esqueceu de dimensionar uma matriz antes de inicializá-la.You've forgotten to dimension an array before initializing it. No exemplo a seguir, values é declarado como uma matriz de inteiros, mas o número de elementos que ele contém nunca é especificado.In the following example, values is declared to be an integer array, but the number of elements that it contains is never specified. A tentativa de inicializar seus valores, portanto, NullReferenceException gerou uma exceção.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()
    

    Você pode eliminar a exceção declarando o número de elementos na matriz antes de inicializá-lo, como faz o exemplo a seguir.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
    

    Para obter mais informações sobre como declarar e inicializar matrizes, consulte matrizes e matrizes.For more information on declaring and initializing arrays, see Arrays and Arrays.

  • Você Obtém um valor de retorno nulo de um método e, em seguida, chama um método no tipo retornado.You get a null return value from a method, and then call a method on the returned type. Isso, às vezes, é o resultado de um erro de documentação; a documentação não observa que uma chamada de método pode retornar null.This sometimes is the result of a documentation error; the documentation fails to note that a method call can return null. Em outros casos, seu código supõe erroneamente que o método sempre retornará um valor nãonulo .In other cases, your code erroneously assumes that the method will always return a non-null value.

    O código no exemplo a seguir pressupõe que o Array.Find método sempre retorna Person um objeto FirstName cujo campo corresponde a uma cadeia de caracteres de pesquisa.The code in the following example assumes that the Array.Find method always returns Person object whose FirstName field matches a search string. Como não há correspondência, o tempo de execução gera NullReferenceException uma exceção.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()
    

    Para resolver esse problema, teste o valor de retorno do método para garantir que ele não null seja antes de chamar nenhum de seus membros, como faz o exemplo a seguir.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
    
  • Você está usando uma expressão (por exemplo, você está encadeando uma lista de métodos ou Propriedades juntas) para recuperar um valor e, embora você esteja verificando se o valor nullé, o tempo de execução NullReferenceException ainda gera uma exceção.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. Isso ocorre porque um dos valores intermediários na expressão retorna null.This occurs because one of the intermediate values in the expression returns null. Como resultado, seu teste para null nunca é avaliado.As a result, your test for null is never evaluated.

    O exemplo a seguir define Pages um objeto que armazena em cache informações sobre páginas da Web, que Page são apresentadas por objetos.The following example defines a Pages object that caches information about web pages, which are presented by Page objects. O Example.Main método verifica se a página da Web atual tem um título não nulo e, se tiver, exibe o título.The Example.Main method checks whether the current web page has a non-null title and, if it does, displays the title. Apesar dessa verificação, no entanto, o método NullReferenceException gera uma exceção.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()
    

    A exceção é gerada porque pages.CurrentPage retorna null se nenhuma informação de página for armazenada no cache.The exception is thrown because pages.CurrentPage returns null if no page information is stored in the cache. Essa exceção pode ser corrigida testando o valor da CurrentPage propriedade antes de recuperar a propriedade Page do Title objeto atual, como faz o exemplo a seguir: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.
    
  • Você está enumerando os elementos de uma matriz que contém tipos de referência e sua tentativa de processar um dos elementos gera uma NullReferenceException exceção.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.

    O exemplo a seguir define uma matriz de cadeia de caracteres.The following example defines a string array. Uma for instrução enumera os elementos na matriz e chama cada método de Trim cadeia de caracteres antes de exibir a cadeia de caracteres.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()
    

    Essa exceção ocorrerá se você pressupor que cada elemento da matriz deve conter um valor não nulo e o valor do elemento de matriz, na verdade 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. A exceção pode ser eliminada testando se o elemento null é antes de executar qualquer operação nesse elemento, como mostra o exemplo a seguir.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
    
  • Uma NullReferenceException exceção é lançada por um método que é passado null.A NullReferenceException exception is thrown by a method that is passed null. Alguns métodos validam os argumentos que são passados para eles.Some methods validate the arguments that are passed to them. Se eles fizerem e um dos argumentos for null, o método lançará System.ArgumentNullException uma exceção.If they do and one of the arguments is null, the method throws an System.ArgumentNullException exception. Caso contrário, ele lançará uma NullReferenceException exceção.Otherwise, it throws a NullReferenceException exception. O exemplo a seguir ilustra esse cenário.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()
    

    Para resolver esse problema, certifique-se de que o argumento passado para o método nullnão seja ou manipule a exceção gerada em try…catch…finally um bloco.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. Para obter mais informações, consulte Exceções.For more information, see Exceptions.

As seguintes instruções da MSIL (Microsoft Intermediate NullReferenceExceptionLanguage) cpblklançam initblk: ldelem.<type> ldflda cpobj ldelema callvirt,, ldfld,, ldind.<type> ,,,, ,,,,stelem.<type>, e .unbox ldlen stfld stind.<type> throwThe 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.

NullReferenceExceptionusa o HRESULT COR_E_NULLREFERENCE, que tem o valor 0x80004003.NullReferenceException uses the HRESULT COR_E_NULLREFERENCE, which has the value 0x80004003.

Para obter uma lista de valores de propriedade inicial para uma instância do NullReferenceException, consulte o NullReferenceException construtores.For a list of initial property values for an instance of NullReferenceException, see the NullReferenceException constructors.

Tratamento de NullReferenceException no código de versãoHandling NullReferenceException in release code

Geralmente, é melhor evitar uma NullReferenceException do que tratá-la depois que ela ocorrer.It's usually better to avoid a NullReferenceException than to handle it after it occurs. Tratar uma exceção pode fazer com que seu código seja difícil de manter e entender e pode, algumas vezes, introduzir outros bugs.Handling an exception can make your code harder to maintain and understand, and can sometimes introduce other bugs. Uma NullReferenceException é frequentemente um erro não recuperável.A NullReferenceException is often a non-recoverable error. Nesses casos, deixar a exceção interromper o aplicativo pode ser a melhor alternativa.In these cases, letting the exception stop the app might be the best alternative.

No entanto, há várias situações em que o tratamento do erro pode ser útil:However, there are many situations where handling the error can be useful:

  • Seu aplicativo pode ignorar objetos nulos.Your app can ignore objects that are null. Por exemplo, se seu aplicativo recupera e processa gravações em um banco de dados, você pode ser capaz de ignorar um certo número de gravações ruins que resultam em objetos nulos.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. Gravar os dados ruins em um arquivo de log ou na interface de usuário do aplicativo pode ser tudo que você precisa fazer.Recording the bad data in a log file or in the application UI might be all you have to do.

  • Você pode recuperar a partir da exceção.You can recover from the exception. Por exemplo, uma chamada para um serviço Web que retorna um tipo de referência pode retornar nulo se a conexão for perdida ou expirar. Você pode tentar restabelecer a conexão e tentar a chamada de novo.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.

  • Você pode restaurar o estado de seu aplicativo para um estado válido.You can restore the state of your app to a valid state. Por exemplo, pode ser que você esteja realizando uma tarefa de várias etapas que requer que as informações sejam salvas em um armazenamento de dados antes de chamar um método que lança uma 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. Se o objeto não inicializado corromper a gravação de dados, você poderá remover os dados anteriores antes de fechar o aplicativo.If the uninitialized object would corrupt the data record, you can remove the previous data before you close the app.

  • Você deseja reportar a exceção.You want to report the exception. Por exemplo, se o erro foi causado por um erro do usuário de seu aplicativo, você pode gerar uma mensagem para ajudá-lo a fornecer as informações corretas.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. Você pode também registrar informações sobre o erro para ajudá-lo a solucionar o problema.You can also log information about the error to help you fix the problem. Algumas estruturas, como o ASP.NET, tem um manipulador de exceção de alto nível que captura todos os erros para que o aplicativo nunca falhe; nesse caso, a exceção de registro em log pode ser a única maneira de saber que ele ocorre.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.

Construtores

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

Inicializa uma nova instância da classe NullReferenceException, definindo a propriedade Message da nova instância para uma mensagem fornecida pelo sistema que descreve o erro, como "o valor 'null' foi encontrado quando uma instância de um objeto foi solicitada."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." Esta mensagem leva em conta a cultura do sistema atual.This message takes into account the current system culture.

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

Inicializa uma nova instância da classe NullReferenceException com dados serializados.Initializes a new instance of the NullReferenceException class with serialized data.

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

Inicializa uma nova instância da classe NullReferenceException com uma mensagem de erro especificada.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)

Inicializa uma nova instância da classe NullReferenceException com uma mensagem de erro especificada e uma referência à exceção interna que é a causa da exceção.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.

Propriedades

Data Data Data Data

Obtém uma coleção de pares de chave/valor que fornecem informações adicionais definidas pelo usuário sobre a exceção.Gets a collection of key/value pairs that provide additional user-defined information about the exception.

(Inherited from Exception)
HelpLink HelpLink HelpLink HelpLink

Obtém ou define um link para o arquivo de ajuda associado a essa exceção.Gets or sets a link to the help file associated with this exception.

(Inherited from Exception)
HResult HResult HResult HResult

Obtém ou define HRESULT, um valor numérico codificado que é atribuído a uma exceção específica.Gets or sets HRESULT, a coded numerical value that is assigned to a specific exception.

(Inherited from Exception)
InnerException InnerException InnerException InnerException

Obtém a instância Exception que causou a exceção atual.Gets the Exception instance that caused the current exception.

(Inherited from Exception)
Message Message Message Message

Obtém uma mensagem que descreve a exceção atual.Gets a message that describes the current exception.

(Inherited from Exception)
Source Source Source Source

Obtém ou define o nome do aplicativo ou objeto que causa o erro.Gets or sets the name of the application or the object that causes the error.

(Inherited from Exception)
StackTrace StackTrace StackTrace StackTrace

Obtém uma representação de cadeia de caracteres de quadros imediatos na pilha de chamadas.Gets a string representation of the immediate frames on the call stack.

(Inherited from Exception)
TargetSite TargetSite TargetSite TargetSite

Obtém o método que gerou a exceção atual.Gets the method that throws the current exception.

(Inherited from Exception)

Métodos

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

Determina se o objeto especificado é igual ao objeto atual.Determines whether the specified object is equal to the current object.

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

Quando substituído em uma classe derivada, retorna a Exception que é a causa raiz de uma ou mais exceções subsequentes.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()

Serve como a função de hash padrão.Serves as the default hash function.

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

Quando substituído em uma classe derivada, define o SerializationInfo com informações sobre a exceção.When overridden in a derived class, sets the SerializationInfo with information about the exception.

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

Obtém o tipo de tempo de execução da instância atual.Gets the runtime type of the current instance.

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

Cria uma cópia superficial do Object atual.Creates a shallow copy of the current Object.

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

Cria e retorna uma representação de cadeia de caracteres da exceção atual.Creates and returns a string representation of the current exception.

(Inherited from Exception)

Eventos

SerializeObjectState SerializeObjectState SerializeObjectState SerializeObjectState

Ocorre quando uma exceção é serializada para criar um objeto de estado de exceção que contém dados serializados sobre a exceção.Occurs when an exception is serialized to create an exception state object that contains serialized data about the exception.

(Inherited from Exception)

Aplica-se a

Veja também