The Labs \ Source Viewer \ SSCLI \ Microsoft.JScript \ CmdLineException

  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. namespace Microsoft.JScript
  16. {
  17.    
  18.     using System;
  19.     using System.Globalization;
  20.     using Microsoft.JScript;
  21.     using System.Runtime.Serialization;
  22.     using System.Security.Permissions;
  23.    
  24.     [Serializable()]
  25.     public class CmdLineException : Exception
  26.     {
  27.         private CmdLineError errorCode;
  28.         private string context;
  29.         private CultureInfo culture;
  30.         const int LOCALE_USER_DEFAULT = 1024;
  31.        
  32.         public CmdLineException(CmdLineError errorCode, CultureInfo culture)
  33.         {
  34.             this.culture = culture;
  35.             this.errorCode = errorCode;
  36.         }
  37.        
  38.         public CmdLineException(CmdLineError errorCode, string context, CultureInfo culture)
  39.         {
  40.             this.culture = culture;
  41.             this.errorCode = errorCode;
  42.             if (context != "")
  43.                 this.context = context;
  44.         }
  45.        
  46.         public CmdLineException() : base()
  47.         {
  48.         }
  49.        
  50.         public CmdLineException(string m) : base(m)
  51.         {
  52.         }
  53.        
  54.         public CmdLineException(string m, Exception e) : base(m, e)
  55.         {
  56.         }
  57.        
  58.         protected CmdLineException(SerializationInfo s, StreamingContext c) : base(s, c)
  59.         {
  60.             this.errorCode = (CmdLineError)s.GetInt32("ErrorCode");
  61.             this.context = s.GetString("Context");
  62.             int lcid = s.GetInt32("LCID");
  63.             if (lcid != LOCALE_USER_DEFAULT)
  64.                 this.culture = new CultureInfo(lcid);
  65.         }
  66.        
  67.         [SecurityPermissionAttribute(SecurityAction.Demand, SerializationFormatter = true)]
  68.         public override void GetObjectData(SerializationInfo s, StreamingContext c)
  69.         {
  70.             base.GetObjectData(s, c);
  71.             s.AddValue("ErrorCode", (int)this.errorCode);
  72.             s.AddValue("Context", this.context);
  73.             int lcid = LOCALE_USER_DEFAULT;
  74.             if (this.culture != null)
  75.                 lcid = this.culture.LCID;
  76.             s.AddValue("LCID", lcid);
  77.         }
  78.        
  79.         public override string Message {
  80.             get {
  81.                 string key = this.ResourceKey(this.errorCode);
  82.                 string msg;
  83.                 msg = JScriptException.Localize(key, this.context, this.culture);
  84.                 // convert errorCode to a 4-digit string
  85.                 string errorNum = (10000 + (int)this.errorCode).ToString(CultureInfo.InvariantCulture).Substring(1);
  86.                 return "fatal error JS" + errorNum + ": " + msg;
  87.             }
  88.         }
  89.        
  90.         public string ResourceKey(CmdLineError errorCode)
  91.         {
  92.             switch (errorCode) {
  93.                 case CmdLineError.AssemblyNotFound:
  94.                     return "Assembly not found";
  95.                 case CmdLineError.CannotCreateEngine:
  96.                     return "Cannot create JScript engine";
  97.                 case CmdLineError.CompilerConstant:
  98.                     return "Compiler constant";
  99.                 case CmdLineError.DuplicateFileAsSourceAndAssembly:
  100.                     return "Duplicate file as source and assembly";
  101.                 case CmdLineError.DuplicateResourceFile:
  102.                     return "Duplicate resource file";
  103.                 case CmdLineError.DuplicateResourceName:
  104.                     return "Duplicate resource name";
  105.                 case CmdLineError.DuplicateSourceFile:
  106.                     return "Duplicate source file";
  107.                 case CmdLineError.ErrorSavingCompiledState:
  108.                     return "Error saving compiled state";
  109.                 case CmdLineError.IncompatibleTargets:
  110.                     return "Incompatible targets";
  111.                 case CmdLineError.InvalidAssembly:
  112.                     return "Invalid assembly";
  113.                 case CmdLineError.InvalidCharacters:
  114.                     return "Invalid characters";
  115.                 case CmdLineError.InvalidCodePage:
  116.                     return "Invalid code page";
  117.                 case CmdLineError.InvalidDefinition:
  118.                     return "Invalid definition";
  119.                 case CmdLineError.InvalidForCompilerOptions:
  120.                     return "Invalid for CompilerOptions";
  121.                 case CmdLineError.InvalidLocaleID:
  122.                     return "Invalid Locale ID";
  123.                 case CmdLineError.InvalidPlatform:
  124.                     return "Invalid platform";
  125.                 case CmdLineError.InvalidTarget:
  126.                     return "Invalid target";
  127.                 case CmdLineError.InvalidSourceFile:
  128.                     return "Invalid source file";
  129.                 case CmdLineError.InvalidVersion:
  130.                     return "Invalid version";
  131.                 case CmdLineError.InvalidWarningLevel:
  132.                     return "Invalid warning level";
  133.                 case CmdLineError.MultipleOutputNames:
  134.                     return "Multiple output filenames";
  135.                 case CmdLineError.MultipleTargets:
  136.                     return "Multiple targets";
  137.                 case CmdLineError.MultipleWin32Resources:
  138.                     return "Multiple win32resources";
  139.                 case CmdLineError.MissingDefineArgument:
  140.                     return "Missing define argument";
  141.                 case CmdLineError.MissingExtension:
  142.                     return "Missing extension";
  143.                 case CmdLineError.MissingLibArgument:
  144.                     return "Missing lib argument";
  145.                 case CmdLineError.MissingReference:
  146.                     return "Missing reference";
  147.                 case CmdLineError.ManagedResourceNotFound:
  148.                     return "Managed resource not found";
  149.                 case CmdLineError.NestedResponseFiles:
  150.                     return "Nested response files";
  151.                 case CmdLineError.NoCodePage:
  152.                     return "No code page";
  153.                 case CmdLineError.NoFileName:
  154.                     return "No filename";
  155.                 case CmdLineError.NoInputSourcesSpecified:
  156.                     return "No input sources specified";
  157.                 case CmdLineError.NoLocaleID:
  158.                     return "No Locale ID";
  159.                 case CmdLineError.NoWarningLevel:
  160.                     return "No warning level";
  161.                 case CmdLineError.ResourceNotFound:
  162.                     return "Resource not found";
  163.                 case CmdLineError.SourceFileTooBig:
  164.                     return "Source file too big";
  165.                 case CmdLineError.SourceNotFound:
  166.                     return "Source not found";
  167.                 case CmdLineError.UnknownOption:
  168.                     return "Unknown option";
  169.             }
  170.             return "No description available";
  171.         }
  172.     }
  173. }

Developer Fusion