ConfigurationErrorsException Classe

Definição

A exceção gerada quando ocorreu um erro de configuração.

public ref class ConfigurationErrorsException : System::Configuration::ConfigurationException
[System.Serializable]
public class ConfigurationErrorsException : System.Configuration.ConfigurationException
[<System.Serializable>]
type ConfigurationErrorsException = class
    inherit ConfigurationException
Public Class ConfigurationErrorsException
Inherits ConfigurationException
Herança
Atributos

Exemplos

O exemplo de código a seguir cria uma seção personalizada e gera uma ConfigurationErrorsException exceção quando modifica suas propriedades.

using System;
using System.Configuration;
using System.Collections.Specialized;
using System.Collections;

namespace Samples.AspNet
{

    // Define a custom section.
    public sealed class CustomSection :
       ConfigurationSection
    {
        public CustomSection()
        {
        }

        [ConfigurationProperty("fileName", DefaultValue = "default.txt",
                    IsRequired = true, IsKey = false)]
        [StringValidator(InvalidCharacters = " ~!@#$%^&*()[]{}/;'\"|\\",
            MinLength = 1, MaxLength = 60)]
        public string FileName
        {
            get
            {
                return (string)this["fileName"];
            }
            set
            {
                this["fileName"] = value;
            }
        }

        [ConfigurationProperty("maxUsers", DefaultValue = (long)10,
            IsRequired = false)]
        [LongValidator(MinValue = 1, MaxValue = 100,
            ExcludeRange = false)]
        public long MaxUsers
        {
            get
            {
                return (long)this["maxUsers"];
            }
            set
            {
                this["maxUsers"] = value;
            }
        }
    }

    // Create the custom section and write it to
    // the configuration file.
    class UsingConfigurationErrorsException
    {
        // Create a custom section.
        static UsingConfigurationErrorsException()
        {
            // Get the application configuration file.
            System.Configuration.Configuration config =
                    ConfigurationManager.OpenExeConfiguration(
                    ConfigurationUserLevel.None);

            // If the section does not exist in the configuration
            // file, create it and save it to the file.
            if (config.Sections["CustomSection"] == null)
            {
                CustomSection custSection = new CustomSection();
                config.Sections.Add("CustomSection", custSection);
                custSection =
                    config.GetSection("CustomSection") as CustomSection;
                custSection.SectionInformation.ForceSave = true;
                config.Save(ConfigurationSaveMode.Full);
            }
        }
        
        // Modify a custom section and cause configuration 
        // error exceptions.
        static void ModifyCustomSection()
        {

            try
            {
                // Get the application configuration file.
                System.Configuration.Configuration config =
                        ConfigurationManager.OpenExeConfiguration(
                        ConfigurationUserLevel.None);

                CustomSection custSection =
                   config.Sections["CustomSection"] as CustomSection;

                // Change the section properties.
                custSection.FileName = "newName.txt";
                
                // Cause an exception.
                custSection.MaxUsers = custSection.MaxUsers + 100;

                if (!custSection.ElementInformation.IsLocked)
                    config.Save();
                else
                    Console.WriteLine(
                        "Section was locked, could not update.");
            }
            catch (ConfigurationErrorsException err)
            {

                string msg = err.Message;
                Console.WriteLine("Message: {0}", msg);

                string fileName = err.Filename;
                Console.WriteLine("Filename: {0}", fileName);

                int lineNumber = err.Line;
                Console.WriteLine("Line: {0}", lineNumber.ToString());

                string bmsg = err.BareMessage;
                Console.WriteLine("BareMessage: {0}", bmsg);

                string source = err.Source;
                Console.WriteLine("Source: {0}", source);

                string st = err.StackTrace;
                Console.WriteLine("StackTrace: {0}", st);
            }
        }

        static void Main(string[] args)
        {
            ModifyCustomSection();
        }
    }
}
Imports System.Configuration
Imports System.Collections.Specialized
Imports System.Collections



' Define a custom section.

NotInheritable Public Class CustomSection
    Inherits ConfigurationSection
    
    Public Sub New() 
    
    End Sub
    
    
    <ConfigurationProperty("fileName", DefaultValue:="default.txt", IsRequired:=True, IsKey:=False), StringValidator(InvalidCharacters:=" ~!@#$%^&*()[]{}/;'""|\", MinLength:=1, MaxLength:=60)> _
    Public Property FileName() As String
        Get
            Return CStr(Me("fileName"))
        End Get
        Set(ByVal value As String)
            Me("fileName") = value
        End Set
    End Property
    
    
    <ConfigurationProperty("maxUsers", DefaultValue:=10, IsRequired:=False), LongValidator(MinValue:=1, MaxValue:=100, ExcludeRange:=False)> _
    Public Property MaxUsers() As Long
        Get
            Return Fix(Me("maxUsers"))
        End Get
        Set(ByVal value As Long)
            Me("maxUsers") = value
        End Set
    End Property
End Class


' Create the custom section and write it to
' the configuration file.

Class UsingConfigurationErrorsException
    
    ' Create a custom section.
    Shared Sub New()

        ' Get the application configuration file.
        Dim config _
        As System.Configuration.Configuration = _
        ConfigurationManager.OpenExeConfiguration( _
        ConfigurationUserLevel.None)

        ' If the section does not exist in the configuration
        ' file, create it and save it to the file.
        If config.Sections("CustomSection") Is Nothing Then
            Dim custSection As New CustomSection()
            config.Sections.Add("CustomSection", custSection)
            custSection = config.GetSection("CustomSection")
            custSection.SectionInformation.ForceSave = True
            config.Save(ConfigurationSaveMode.Full)
        End If

    End Sub
    
    
    ' Modify a custom section and cause configuration 
    ' error exceptions.
    Shared Sub ModifyCustomSection() 
        
        Try
            ' Get the application configuration file.
            Dim config _
            As System.Configuration.Configuration = _
            ConfigurationManager.OpenExeConfiguration( _
            ConfigurationUserLevel.None)

            Dim custSection _
            As CustomSection = _
            config.Sections("CustomSection")
             
            ' Change the section properties.
            custSection.FileName = "newName.txt"
            
            ' Cause an exception.
            custSection.MaxUsers = _
            custSection.MaxUsers + 100
            
            If Not custSection.ElementInformation.IsLocked Then
                config.Save()
            Else
                Console.WriteLine( _
                "Section was locked, could not update.")
            End If
        Catch err As ConfigurationErrorsException
            
            Dim msg As String = err.Message
            Console.WriteLine("Message: {0}", msg)
            Dim fileName As String = err.Filename
            Console.WriteLine("Filename: {0}", _
            fileName)
            Dim lineNumber As Integer = err.Line
            Console.WriteLine("Line: {0}", _
            lineNumber.ToString())
            Dim bmsg As String = err.BareMessage
            Console.WriteLine("BareMessage: {0}", bmsg)
            Dim src As String = err.Source
            Console.WriteLine("Source: {0}", src)
            Dim st As String = err.StackTrace
            Console.WriteLine("StackTrace: {0}", st)
        End Try

    End Sub

    Shared Sub Main(ByVal args() As String) 
        ModifyCustomSection()
    
    End Sub
End Class

O exemplo a seguir é um trecho de configuração usado pelo exemplo anterior.

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <configSections>
    <section name="CustomSection" type="Samples.AspNet.CustomSection,
      ConfigurationErrorsException, Version=1.0.0.0, Culture=neutral,
      PublicKeyToken=null" allowDefinition="Everywhere"
      allowExeDefinition="MachineToApplication"
      restartOnExternalChanges="true" />
  </configSections>
  <CustomSection fileName="default.txt" maxUsers="10" />
</configuration>

Comentários

A ConfigurationErrorsException exceção é gerada quando ocorre qualquer erro enquanto as informações de configuração estão sendo lidas ou gravadas.

Construtores

Nome Description
ConfigurationErrorsException()

Inicializa uma nova instância da classe ConfigurationErrorsException.

ConfigurationErrorsException(SerializationInfo, StreamingContext)

Inicializa uma nova instância da classe ConfigurationErrorsException.

ConfigurationErrorsException(String, Exception, String, Int32)

Inicializa uma nova instância da classe ConfigurationErrorsException.

ConfigurationErrorsException(String, Exception, XmlNode)

Inicializa uma nova instância da classe ConfigurationErrorsException.

ConfigurationErrorsException(String, Exception, XmlReader)

Inicializa uma nova instância da classe ConfigurationErrorsException.

ConfigurationErrorsException(String, Exception)

Inicializa uma nova instância da classe ConfigurationErrorsException.

ConfigurationErrorsException(String, String, Int32)

Inicializa uma nova instância da classe ConfigurationErrorsException.

ConfigurationErrorsException(String, XmlNode)

Inicializa uma nova instância da classe ConfigurationErrorsException.

ConfigurationErrorsException(String, XmlReader)

Inicializa uma nova instância da classe ConfigurationErrorsException.

ConfigurationErrorsException(String)

Inicializa uma nova instância da classe ConfigurationErrorsException.

Propriedades

Nome Description
BareMessage

Obtém uma descrição do motivo pelo qual essa exceção de configuração foi lançada.

Data

Obtém uma coleção de pares chave/valor que fornecem informações adicionais definidas pelo usuário sobre a exceção.

(Herdado de Exception)
Errors

Obtém uma coleção de erros que detalham os motivos pelos quais essa ConfigurationErrorsException exceção foi gerada.

Filename

Obtém o caminho para o arquivo de configuração que causou a geração dessa exceção de configuração.

HelpLink

Obtém ou define um link para o arquivo de ajuda associado a essa exceção.

(Herdado de Exception)
HResult

Obtém 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)
Line

Obtém o número de linha dentro do arquivo de configuração no qual essa exceção de configuração foi gerada.

Message

Obtém uma descrição estendida do motivo pelo qual essa exceção de configuração foi lançada.

Source

Obtém ou define o nome do aplicativo ou do objeto que causa o erro.

(Herdado de Exception)
StackTrace

Obtém uma representação de cadeia de caracteres dos quadros imediatos na pilha de chamadas.

(Herdado de Exception)
TargetSite

Obtém o método que gera a exceção atual.

(Herdado de Exception)

Métodos

Nome Description
Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
GetBaseException()

Quando substituído em uma classe derivada, retorna a Exception causa raiz de uma ou mais exceções subsequentes.

(Herdado de Exception)
GetFilename(XmlNode)

Obtém o caminho para o arquivo de configuração do qual o objeto interno XmlNode foi carregado quando essa exceção de configuração foi gerada.

GetFilename(XmlReader)

Obtém o caminho para o arquivo de configuração que o interno XmlReader estava lendo quando essa exceção de configuração foi lançada.

GetHashCode()

Serve como a função hash predefinida.

(Herdado de Object)
GetLineNumber(XmlNode)

Obtém o número de linha dentro do arquivo de configuração que o objeto interno XmlNode representou quando essa exceção de configuração foi gerada.

GetLineNumber(XmlReader)

Obtém o número de linha dentro do arquivo de configuração que o objeto interno XmlReader estava processando quando essa exceção de configuração foi gerada.

GetObjectData(SerializationInfo, StreamingContext)

Define o SerializationInfo objeto com o nome do arquivo e o número de linha no qual essa exceção de configuração ocorreu.

GetType()

Obtém o tipo de runtime da instância atual.

(Herdado de Exception)
MemberwiseClone()

Cria uma cópia superficial do Objectatual.

(Herdado de Object)
ToString()

Cria e retorna uma representação de cadeia de caracteres da exceção atual.

(Herdado de Exception)

Eventos

Nome 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)

Aplica-se a