The Labs \ Source Viewer \ SSCLI \ System \ ArgumentException

  1. // ==++==
  2. //
  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. //
  14. // ==--==
  15. /*=============================================================================
  16. **
  17. ** Class: ArgumentException
  18. **
  19. **
  20. ** Purpose: Exception class for invalid arguments to a method.
  21. **
  22. **
  23. =============================================================================*/
  24. namespace System
  25. {
  26.    
  27.     using System;
  28.     using System.Runtime.Remoting;
  29.     using System.Runtime.Serialization;
  30.     using System.Globalization;
  31.     using System.Security.Permissions;
  32.     [System.Runtime.InteropServices.ComVisible(true)]
  33.     [Serializable()]
  34.     public class ArgumentException : SystemException, ISerializable
  35.     {
  36.         private string m_paramName;
  37.        
  38.         // Creates a new ArgumentException with its message
  39.         // string set to the empty string.
  40.         public ArgumentException() : base(Environment.GetResourceString("Arg_ArgumentException"))
  41.         {
  42.             SetErrorCode(__HResults.COR_E_ARGUMENT);
  43.         }
  44.        
  45.         // Creates a new ArgumentException with its message
  46.         // string set to message.
  47.         //
  48.         public ArgumentException(string message) : base(message)
  49.         {
  50.             SetErrorCode(__HResults.COR_E_ARGUMENT);
  51.         }
  52.        
  53.         public ArgumentException(string message, Exception innerException) : base(message, innerException)
  54.         {
  55.             SetErrorCode(__HResults.COR_E_ARGUMENT);
  56.         }
  57.        
  58.         public ArgumentException(string message, string paramName, Exception innerException) : base(message, innerException)
  59.         {
  60.             m_paramName = paramName;
  61.             SetErrorCode(__HResults.COR_E_ARGUMENT);
  62.         }
  63.        
  64.        
  65.         public ArgumentException(string message, string paramName) : base(message)
  66.         {
  67.             m_paramName = paramName;
  68.             SetErrorCode(__HResults.COR_E_ARGUMENT);
  69.         }
  70.        
  71.         protected ArgumentException(SerializationInfo info, StreamingContext context) : base(info, context)
  72.         {
  73.             m_paramName = info.GetString("ParamName");
  74.         }
  75.        
  76.         public override string Message {
  77.             get {
  78.                 string s = base.Message;
  79.                 if (!((m_paramName == null) || (m_paramName.Length == 0)))
  80.                     return s + Environment.NewLine + String.Format(CultureInfo.CurrentCulture, Environment.GetResourceString("Arg_ParamName_Name"), m_paramName);
  81.                 else
  82.                     return s;
  83.             }
  84.         }
  85.        
  86.         public virtual string ParamName {
  87.             get { return m_paramName; }
  88.         }
  89.        
  90.         [SecurityPermissionAttribute(SecurityAction.LinkDemand, Flags = SecurityPermissionFlag.SerializationFormatter)]
  91.         public override void GetObjectData(SerializationInfo info, StreamingContext context)
  92.         {
  93.             if (info == null) {
  94.                 throw new ArgumentNullException("info");
  95.             }
  96.             base.GetObjectData(info, context);
  97.             info.AddValue("ParamName", m_paramName, typeof(string));
  98.         }
  99.     }
  100. }

Developer Fusion