1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98
|
//------------------------------------------------------------------------------
// <copyright file="ExceptionUtil.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//------------------------------------------------------------------------------
namespace System.Configuration {
using System;
using System.Xml;
using System.Configuration.Internal;
static internal class ExceptionUtil {
static internal ArgumentException ParameterInvalid(string parameter) {
return new ArgumentException(SR.GetString(SR.Parameter_Invalid, parameter), parameter);
}
static internal ArgumentException ParameterNullOrEmpty(string parameter) {
return new ArgumentException(SR.GetString(SR.Parameter_NullOrEmpty, parameter), parameter);
}
static internal ArgumentException PropertyInvalid(string property) {
return new ArgumentException(SR.GetString(SR.Property_Invalid, property), property);
}
static internal ArgumentException PropertyNullOrEmpty(string property) {
return new ArgumentException(SR.GetString(SR.Property_NullOrEmpty, property), property);
}
static internal InvalidOperationException UnexpectedError(string methodName) {
return new InvalidOperationException(SR.GetString(SR.Unexpected_Error, methodName));
}
static internal string NoExceptionInformation {
get {
return SR.GetString(SR.No_exception_information_available);
}
}
static internal ConfigurationErrorsException WrapAsConfigException(string outerMessage, Exception e, IConfigErrorInfo errorInfo) {
if (errorInfo != null) {
return WrapAsConfigException(outerMessage, e, errorInfo.Filename, errorInfo.LineNumber);
}
else {
return WrapAsConfigException(outerMessage, e, null, 0);
}
}
static internal ConfigurationErrorsException WrapAsConfigException(string outerMessage, Exception e, string filename, int line) {
//
// Preserve ConfigurationErrorsException
//
ConfigurationErrorsException ce = e as ConfigurationErrorsException;
if (ce != null) {
return ce;
}
//
// Promote deprecated ConfigurationException to ConfigurationErrorsException
//
ConfigurationException deprecatedException = e as ConfigurationException;
if (deprecatedException != null) {
return new ConfigurationErrorsException(deprecatedException);
}
//
// For XML exceptions, preserve the text of the exception in the outer message.
//
XmlException xe = e as XmlException;
if (xe != null) {
if (xe.LineNumber != 0) {
line = xe.LineNumber;
}
return new ConfigurationErrorsException(xe.Message, xe, filename, line);
}
//
// Wrap other exceptions in an inner exception, and give as much info as possible
//
if (e != null) {
return new ConfigurationErrorsException(
SR.GetString(SR.Wrapped_exception_message, outerMessage, e.Message),
e,
filename,
line);
}
//
// If there is no exception, create a new exception with no further information.
//
return new ConfigurationErrorsException(
SR.GetString(SR.Wrapped_exception_message, outerMessage, ExceptionUtil.NoExceptionInformation),
filename,
line);
}
}
}
|