The Labs \ Source Viewer \ SSCLI \ System.Configuration \ ExceptionUtil

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

Developer Fusion