ConfigurationErrorsException 類別

定義

發生組態錯誤時所擲回的例外狀況。The exception that is thrown when a configuration error has occurred.

public ref class ConfigurationErrorsException : System::Configuration::ConfigurationException
[System.Serializable]
public class ConfigurationErrorsException : System.Configuration.ConfigurationException
type ConfigurationErrorsException = class
    inherit ConfigurationException
Public Class ConfigurationErrorsException
Inherits ConfigurationException
繼承
屬性

範例

下列程式碼範例會建立自訂區段, 並ConfigurationErrorsException在修改其屬性時產生例外狀況。The following code example creates a custom section and generates a ConfigurationErrorsException exception when it modifies its properties.

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

下列範例是上一個範例所使用的設定摘錄。The following example is a configuration excerpt used by the previous example.

<?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>  

備註

ConfigurationErrorsException讀取或寫入設定資訊時發生任何錯誤時, 就會擲回例外狀況 (exception)。The ConfigurationErrorsException exception is thrown when any error occurs while configuration information is being read or written.

建構函式

ConfigurationErrorsException()

初始化 ConfigurationErrorsException 類別的新執行個體。Initializes a new instance of the ConfigurationErrorsException class.

ConfigurationErrorsException(SerializationInfo, StreamingContext)

初始化 ConfigurationErrorsException 類別的新執行個體。Initializes a new instance of the ConfigurationErrorsException class.

ConfigurationErrorsException(String)

初始化 ConfigurationErrorsException 類別的新執行個體。Initializes a new instance of the ConfigurationErrorsException class.

ConfigurationErrorsException(String, Exception)

初始化 ConfigurationErrorsException 類別的新執行個體。Initializes a new instance of the ConfigurationErrorsException class.

ConfigurationErrorsException(String, Exception, String, Int32)

初始化 ConfigurationErrorsException 類別的新執行個體。Initializes a new instance of a ConfigurationErrorsException class.

ConfigurationErrorsException(String, Exception, XmlNode)

初始化 ConfigurationErrorsException 類別的新執行個體。Initializes a new instance of the ConfigurationErrorsException class.

ConfigurationErrorsException(String, Exception, XmlReader)

初始化 ConfigurationErrorsException 類別的新執行個體。Initializes a new instance of the ConfigurationErrorsException class.

ConfigurationErrorsException(String, String, Int32)

初始化 ConfigurationErrorsException 類別的新執行個體。Initializes a new instance of the ConfigurationErrorsException class.

ConfigurationErrorsException(String, XmlNode)

初始化 ConfigurationErrorsException 類別的新執行個體。Initializes a new instance of the ConfigurationErrorsException class.

ConfigurationErrorsException(String, XmlReader)

初始化 ConfigurationErrorsException 類別的新執行個體。Initializes a new instance of the ConfigurationErrorsException class.

屬性

BareMessage

取得擲回此組態例外狀況原因的描述。Gets a description of why this configuration exception was thrown.

Data

取得提供例外狀況之其他使用者定義相關資訊的索引鍵/值組集合。Gets a collection of key/value pairs that provide additional user-defined information about the exception.

(繼承來源 Exception)
Errors

取得錯誤的集合,這些錯誤會詳細說明擲回此 ConfigurationErrorsException 例外狀況的理由。Gets a collection of errors that detail the reasons this ConfigurationErrorsException exception was thrown.

Filename

取得導致此組態例外狀況擲回的組態檔之路徑。Gets the path to the configuration file that caused this configuration exception to be thrown.

HelpLink

取得或設定與這個例外狀況相關聯的說明檔連結。Gets or sets a link to the help file associated with this exception.

(繼承來源 Exception)
HResult

取得或設定 HRESULT,它是指派給特定例外狀況的編碼數值。Gets or sets HRESULT, a coded numerical value that is assigned to a specific exception.

(繼承來源 Exception)
InnerException

取得造成目前例外狀況的 Exception 執行個體。Gets the Exception instance that caused the current exception.

(繼承來源 Exception)
Line

取得組態檔中擲回此組態例外狀況的行號。Gets the line number within the configuration file at which this configuration exception was thrown.

Message

取得擲回此組態例外狀況原因的擴充描述。Gets an extended description of why this configuration exception was thrown.

Source

取得或設定造成錯誤的應用程式或物件的名稱。Gets or sets the name of the application or the object that causes the error.

(繼承來源 Exception)
StackTrace

取得呼叫堆疊上即時運算框架的字串表示。Gets a string representation of the immediate frames on the call stack.

(繼承來源 Exception)
TargetSite

取得擲回目前例外狀況的方法。Gets the method that throws the current exception.

(繼承來源 Exception)

方法

Equals(Object)

判斷指定的物件是否等於目前的物件。Determines whether the specified object is equal to the current object.

(繼承來源 Object)
GetBaseException()

在衍生類別中覆寫時,傳回一或多個後續的例外狀況的根本原因 ExceptionWhen overridden in a derived class, returns the Exception that is the root cause of one or more subsequent exceptions.

(繼承來源 Exception)
GetFilename(XmlNode)

取得當擲回此組態例外狀況時,載入內部 XmlNode 物件的來源組態檔之路徑。Gets the path to the configuration file from which the internal XmlNode object was loaded when this configuration exception was thrown.

GetFilename(XmlReader)

取得當擲回此組態例外狀況時,內部 XmlReader 正在讀取的組態檔之路徑。Gets the path to the configuration file that the internal XmlReader was reading when this configuration exception was thrown.

GetHashCode()

做為預設雜湊函式。Serves as the default hash function.

(繼承來源 Object)
GetLineNumber(XmlNode)

取得當擲回此組態例外狀況時,內部 XmlNode 物件在組態檔中表示的行號。Gets the line number within the configuration file that the internal XmlNode object represented when this configuration exception was thrown.

GetLineNumber(XmlReader)

取得當擲回此組態例外狀況時,內部 XmlReader 物件在組態檔中處理的行號。Gets the line number within the configuration file that the internal XmlReader object was processing when this configuration exception was thrown.

GetObjectData(SerializationInfo, StreamingContext)

以發生這個組態例外狀況的檔案名稱和行號,設定 SerializationInfo 物件。Sets the SerializationInfo object with the file name and line number at which this configuration exception occurred.

GetType()

取得目前執行個體的執行階段類型。Gets the runtime type of the current instance.

(繼承來源 Exception)
MemberwiseClone()

建立目前 Object 的淺層複本 (Shallow Copy)。Creates a shallow copy of the current Object.

(繼承來源 Object)
ToString()

建立並傳回目前例外狀況的字串表示。Creates and returns a string representation of the current exception.

(繼承來源 Exception)

事件

SerializeObjectState

當例外狀況序列化,以建立包含例外狀況相關序列化資料的例外狀況狀態物件時,就會發生此事件。Occurs when an exception is serialized to create an exception state object that contains serialized data about the exception.

(繼承來源 Exception)

適用於