NullReferenceException Classe
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
A exceção que é lançada quando há uma tentativa de desreferenciar uma referência a um objeto nulo.
public ref class NullReferenceException : Exception
public ref class NullReferenceException : SystemException
public class NullReferenceException : Exception
[System.Serializable]
public class NullReferenceException : SystemException
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public class NullReferenceException : SystemException
public class NullReferenceException : SystemException
type NullReferenceException = class
inherit Exception
[<System.Serializable>]
type NullReferenceException = class
inherit SystemException
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type NullReferenceException = class
inherit SystemException
type NullReferenceException = class
inherit SystemException
Public Class NullReferenceException
Inherits Exception
Public Class NullReferenceException
Inherits SystemException
- Herança
- Herança
- Atributos
Observações
Uma NullReferenceException exceção é lançada quando tenta aceder a um membro num tipo cujo valor é null. Uma NullReferenceException exceção normalmente reflete erro do programador e é incluída nos seguintes cenários:
Note
Pode evitar a maioria NullReferenceException das exceções em C# usando o operador nulo condicional (?.) ou o operador nulo de coalescência (??). Para obter mais informações, consulte Tipos de referência anuláveis. Os exemplos seguintes em C# assumem que o contexto anulável está desativado (não recomendado).
Esqueceste-te de instanciar um tipo de referência. No exemplo seguinte,
namesé declarado mas nunca instanciado (a linha afetada é comentada no exemplo de C# porque não compila):using System.Collections.Generic; public class UseBeforeAssignExample { public static void Main(string[] args) { int value = int.Parse(args[0]); List<string> names; if (value > 0) names = []; //names.Add("Major Major Major"); } } // Compilation displays a warning like the following: // 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 UseBeforeAssignExample.Main()open System [<EntryPoint>] let main args = let value = Int32.Parse args[0] // Set names to null, don't initialize it. let mutable names = Unchecked.defaultof<ResizeArray<string>> if value > 0 then names <- ResizeArray() names.Add "Major Major Major" 0 // Compilation does not display a warning as this is an extremely rare occurance in F#. // Creating a value without initalizing either requires using 'null' (not possible // on types defined in F# without [<AllowNullLiteral>]) or Unchecked.defaultof. // // 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 este código. Outros emitem um erro e a compilação falha. Para resolver este problema, instancia-se o objeto de modo a que o seu valor deixe
nullde ser . O exemplo seguinte faz isto chamando o construtor de classes de um tipo.using System.Collections.Generic; public class AnotherExample { public static void Main() { List<string> names = ["Major Major Major"]; } }let names = ResizeArray() 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 ModuleEsqueceste-te de dimensionar um array antes de o inicializar. No exemplo seguinte,
valuesé declarado como um array inteiro, mas o número de elementos que contém nunca é especificado. A tentativa de inicializar os seus valores, portanto, lança uma NullReferenceException exceção.int[] values = null; for (int ctr = 0; ctr <= 9; ctr++) values[ctr] = ctr * 2; foreach (int 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 Array3Example.Main()let values: int[] = null for i = 0 to 9 do values[i] <- i * 2 for value in values do printfn $"{value}" // The example displays the following output: // Unhandled Exception: // System.NullReferenceException: Object reference not set to an instance of an object. // at <StartupCode$fs>.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()Pode eliminar a exceção declarando o número de elementos no array antes de o inicializar, como faz o exemplo seguinte.
int[] values = new int[10]; for (int ctr = 0; ctr <= 9; ctr++) values[ctr] = ctr * 2; foreach (int value in values) Console.WriteLine(value); // The example displays the following output: // 0 // 2 // 4 // 6 // 8 // 10 // 12 // 14 // 16 // 18let values = Array.zeroCreate<int> 10 for i = 0 to 9 do values[i] <- i * 2 for value in values do printfn $"{value}" // The example displays the following output: // 0 // 2 // 4 // 6 // 8 // 10 // 12 // 14 // 16 // 18Module 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 ' 18Para mais informações sobre declarar e inicializar arrays, veja Arrays e Arrays.
Obtém-se um valor de retorno nulo de um método e depois chama-se um método no tipo devolvido. Isto por vezes resulta de um erro de documentação; a documentação não indica que uma chamada de método pode devolver
null. Noutros casos, o seu código assume erroneamente que o método devolverá sempre um valor não nulo.O código no exemplo seguinte assume que o Array.Find método devolve
Personsempre um objeto cujoFirstNamecampo corresponde a uma cadeia de pesquisa. Como não há correspondência, o tempo de execução lança uma NullReferenceException exceção.public static void NoCheckExample() { Person[] persons = Person.AddRange([ "Abigail", "Abra", "Abraham", "Adrian", "Ariella", "Arnold", "Aston", "Astor" ]); string nameToFind = "Robert"; Person found = Array.Find(persons, p => p.FirstName == nameToFind); Console.WriteLine(found.FirstName); } // The example displays the following output: // Unhandled Exception: System.NullReferenceException: // Object reference not set to an instance of an object.open System type Person(firstName) = member _.FirstName = firstName static member AddRange(firstNames) = Array.map Person firstNames let persons = [| "Abigail"; "Abra"; "Abraham"; "Adrian" "Ariella"; "Arnold"; "Aston"; "Astor" |] |> Person.AddRange let nameToFind = "Robert" let found = Array.Find(persons, fun p -> p.FirstName = nameToFind) printfn $"{found.FirstName}" // The example displays the following output: // Unhandled Exception: System.NullReferenceException: // Object reference not set to an instance of an object. // at <StartupCode$fs>.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 este problema, teste o valor de retorno do método para garantir que não
nullé antes de chamar qualquer um dos seus membros, como faz o exemplo seguinte.public static void ExampleWithNullCheck() { Person[] persons = Person.AddRange([ "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($"'{nameToFind}' not found."); } // The example displays the following output: // 'Robert' not foundopen System [<AllowNullLiteral>] type Person(firstName) = member _.FirstName = firstName static member AddRange(firstNames) = Array.map Person firstNames let persons = [| "Abigail"; "Abra"; "Abraham"; "Adrian" "Ariella"; "Arnold"; "Aston"; "Astor" |] |> Person.AddRange let nameToFind = "Robert" let found = Array.Find(persons, fun p -> p.FirstName = nameToFind) if found <> null then printfn $"{found.FirstName}" else printfn $"{nameToFind} not found." // Using F#'s Array.tryFind function // This does not require a null check or [<AllowNullLiteral>] let found2 = persons |> Array.tryFind (fun p -> p.FirstName = nameToFind) match found2 with | Some firstName -> printfn $"{firstName}" | None -> printfn $"{nameToFind} not found." // The example displays the following output: // Robert not found. // 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 foundEstá a usar uma expressão (por exemplo, encadeou uma lista de métodos ou propriedades) para recuperar um valor e, embora esteja a verificar se o valor é
null, o tempo de execução ainda lança uma NullReferenceException exceção. Isto ocorre porque um dos valores intermédios na expressão devolvenull. Como resultado, o seu testenullnunca é avaliado.O exemplo seguinte define um
Pagesobjeto que armazena em cache informação sobre páginas web, que são apresentadas porPageobjetos. OExample.Mainmétodo verifica se a página web atual tem um título não nulo e, se tiver, mostra o título. Apesar desta verificação, no entanto, o método lança uma NullReferenceException exceção.public class Chain1Example { public static void Main() { var pages = new Pages(); if (!string.IsNullOrEmpty(pages.CurrentPage.Title)) { string title = pages.CurrentPage.Title; Console.WriteLine($"Current title: '{title}'"); } } } public class Pages { readonly 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] is 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 Chain1Example.Main()open System type Page() = [<DefaultValue>] val mutable public URL: Uri [<DefaultValue>] val mutable public Title: string type Pages() = let pages = Array.zeroCreate<Page> 10 let mutable i = 0 member _.CurrentPage with get () = pages[i] and set (value) = // Move all the page objects down to accommodate the new one. if i > pages.GetUpperBound 0 then for ndx = 1 to pages.GetUpperBound 0 do pages[ndx - 1] <- pages[ndx] pages[i] <- value if i < pages.GetUpperBound 0 then i <- i + 1 member _.PreviousPage = if i = 0 then if box pages[0] = null then Unchecked.defaultof<Page> else pages[0] else i <- i - 1 pages[i + 1] let pages = Pages() if String.IsNullOrEmpty pages.CurrentPage.Title |> not then let title = pages.CurrentPage.Title printfn $"Current title: '{title}'" // The example displays the following output: // Unhandled Exception: // System.NullReferenceException: Object reference not set to an instance of an object. // at <StartupCode$fs>.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 é lançada porque
pages.CurrentPageretornanullse não houver informação de página armazenada na cache. Esta exceção pode ser corrigida testando o valor daCurrentPagepropriedade antes de recuperar a propriedade doTitleobjeto atualPage, como faz o exemplo seguinte:var pages = new Pages(); Page current = pages.CurrentPage; if (current != null) { string title = current.Title; Console.WriteLine($"Current title: '{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.let pages = Pages() let current = pages.CurrentPage if box current <> null then let title = current.Title printfn $"Current title: '{title}'" else printfn "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.Estás a enumerar os elementos de um array que contém tipos de referência, e a tua tentativa de processar um desses elementos lança uma NullReferenceException exceção.
O exemplo seguinte define um array de strings. Uma instrução enumera os elementos no array e chama
foro método de Trim cada cadeia antes de a exibir.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.open System let values = [| "one"; null; "two" |] for i = 0 to values.GetUpperBound 0 do printfn $"""{values[i].Trim()}{if i = values.GetUpperBound 0 then "" else ", "}""" printfn "" // The example displays the following output: // Unhandled Exception: // System.NullReferenceException: Object reference not set to an instance of an object. // at <StartupCode$fs>.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()Esta exceção ocorre se assumires que cada elemento do array deve conter um valor não nulo, e o valor do elemento do array é de facto
null. A exceção pode ser eliminada testando se o elemento estánullantes de realizar qualquer operação sobre esse elemento, como mostra o exemplo seguinte.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, , twoopen System let values = [| "one"; null; "two" |] for i = 0 to values.GetUpperBound 0 do printf $"""{if values[i] <> null then values[i].Trim() else ""}{if i = values.GetUpperBound 0 then "" else ", "}""" Console.WriteLine() // The example displays the following output: // one, , twoModule 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, , twoUm método quando acede a um membro de um dos seus argumentos, mas esse argumento é
null. OPopulateNamesmétodo no exemplo seguinte lança a exceção na linhanames.Add(arrName);.using System.Collections.Generic; public class NRE2Example { 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 (string 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 NRE2Example.PopulateNames(List`1 names) // at NRE2Example.Main()let populateNames (names: ResizeArray<string>) = let arrNames = [ "Dakota"; "Samuel"; "Nikita" "Koani"; "Saya"; "Yiska"; "Yumaevsky" ] for arrName in arrNames do names.Add arrName let getData () : ResizeArray<string> = null let names = getData () populateNames names // 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 <StartupCode$fs>.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 esta questão, certifique-se de que o argumento passado para o método não
nullé , ou trate da exceção lançada numtry…catch…finallybloco. Para mais informações, consulte Exceções.Uma lista é criada sem saber o tipo, e a lista não foi inicializada. O
GetListmétodo no exemplo seguinte lança a exceção na linhaemptyList.Add(value).using System; using System.Collections.Generic; using System.Collections; using System.Runtime.Serialization; public class NullReferenceExample { public static void Main() { var listType = GetListType(); _ = GetList(listType); } private static Type GetListType() { return typeof(List<int>); } private static IList GetList(Type type) { var emptyList = (IList)FormatterServices.GetUninitializedObject(type); // Does not call list constructor var value = 1; emptyList.Add(value); return emptyList; } } // The example displays output like the following: // Unhandled Exception: System.NullReferenceException: 'Object reference // not set to an instance of an object.' // at System.Collections.Generic.List`1.System.Collections.IList.Add(Object item) // at NullReferenceExample.GetList(Type type): line 24Para resolver este problema, certifique-se de que a lista está inicializada (uma forma de o fazer é chamar
Activator.CreateInstanceem vez deFormatterServices.GetUninitializedObject), ou tratar da exceção lançada numtry…catch…finallybloco. Para mais informações, consulte Exceções.
As seguintes instruções Microsoft linguagem intermédia (MSIL) lançam NullReferenceException: callvirt, cpblk, cpobj, initblk, ldelem.<type>, ldelema, ldfld, ldflda, ldind.<type>, ldlen, stelem.<type>, stfld, stind.<type>, throw e unbox.
NullReferenceException usa o HRESULT COR_E_NULLREFERENCE, que tem o valor 0x80004003.
Para obter uma lista dos valores iniciais de propriedade de uma instância de NullReferenceException, consulte os construtores de NullReferenceException.
Quando lidar com exceções NullReferenceException
Normalmente é melhor evitar uma NullReferenceException do que lidar com ela depois de ocorrer. Gerir uma exceção pode tornar o seu código mais difícil de manter e compreender, e por vezes pode introduzir outros bugs. Um NullReferenceException é frequentemente um erro irrecuperável. Nestes casos, deixar a exceção parar a aplicação pode ser a melhor alternativa.
No entanto, existem muitas situações em que lidar com o erro pode ser útil:
A tua aplicação pode ignorar objetos que são nulos. Por exemplo, se a sua aplicação recuperar e processar registos numa base de dados, pode conseguir ignorar um certo número de registos mau que resultam em objetos nulos. Registar os dados errados num ficheiro de registo ou na interface da aplicação pode ser tudo o que tens de fazer.
Podes recuperar da exceção. Por exemplo, uma chamada a um serviço web que devolve um tipo de referência pode devolver nulo se a ligação for perdida ou se a ligação expirar. Pode tentar restabelecer a ligação e tentar a chamada novamente.
Pode restaurar o estado da sua aplicação para um estado válido. Por exemplo, pode estar a realizar uma tarefa em vários passos que exige que guarde informação num armazenamento de dados antes de chamar um método que gera uma NullReferenceException. Se o objeto não inicializado corromper o registo de dados, pode remover os dados anteriores antes de fechar a aplicação.
Queres reportar a exceção. Por exemplo, se o erro foi causado por um erro do utilizador da sua aplicação, pode gerar uma mensagem para o ajudar a fornecer a informação correta. Também pode registar informações sobre o erro para o ajudar a resolver o problema. Alguns frameworks, como o ASP.NET, têm um gestor de exceções de alto nível que captura todos os erros para que a aplicação nunca crashe; nesse caso, registar a exceção pode ser a única forma de saber que ela ocorre.
Construtores
| Name | Description |
|---|---|
| NullReferenceException() |
Inicializa uma nova instância da NullReferenceException classe, definindo a Message propriedade da nova instância para uma mensagem fornecida pelo sistema que descreve o erro, como "O valor 'null' foi encontrado onde era necessária uma instância de um objeto." Esta mensagem tem em conta a cultura atual do sistema. |
| NullReferenceException(SerializationInfo, StreamingContext) |
Inicializa uma nova instância da NullReferenceException classe com dados serializados. |
| NullReferenceException(String, Exception) |
Inicializa uma nova instância da NullReferenceException classe com uma mensagem de erro especificada e uma referência à exceção interna que é a causa dessa exceção. |
| NullReferenceException(String) |
Inicializa uma nova instância da NullReferenceException classe com uma mensagem de erro especificada. |
Propriedades
| Name | Description |
|---|---|
| Data |
Obtém uma coleção de pares chave/valor que fornecem informação adicional definida pelo utilizador sobre a exceção. (Herdado de Exception) |
| HelpLink |
Obtém ou define um link para o ficheiro de ajuda associado a esta exceção. (Herdado de Exception) |
| HResult |
Recebe ou define HRESULT, um valor numérico codificado atribuído a uma exceção específica. (Herdado de Exception) |
| InnerException |
Obtém a Exception instância que causou a exceção atual. (Herdado de Exception) |
| Message |
Recebe uma mensagem que descreve a exceção atual. (Herdado de Exception) |
| Source |
Obtém ou define o nome do aplicativo ou o objeto que causa o erro. (Herdado de Exception) |
| StackTrace |
Obtém uma representação string dos frames imediatos na stack de chamadas. (Herdado de Exception) |
| TargetSite |
Obtém o método que lança a exceção atual. (Herdado de Exception) |
Métodos
| Name | Description |
|---|---|
| Equals(Object) |
Determina se o objeto especificado é igual ao objeto atual. (Herdado de Object) |
| GetBaseException() |
Quando sobrescrito numa classe derivada, devolve o Exception que é a causa raiz de uma ou mais exceções subsequentes. (Herdado de Exception) |
| GetHashCode() |
Serve como função de hash predefinida. (Herdado de Object) |
| GetObjectData(SerializationInfo, StreamingContext) |
Quando sobreposto numa classe derivada, define a SerializationInfo informação com sobre a exceção. (Herdado de Exception) |
| GetType() |
Obtém o tipo de execução da instância atual. (Herdado de Exception) |
| MemberwiseClone() |
Cria uma cópia superficial do atual Object. (Herdado de Object) |
| ToString() |
Cria e devolve uma representação string da exceção atual. (Herdado de Exception) |
evento
| Name | Description |
|---|---|
| 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. (Herdado de Exception) |