lalala
[mono.git] / mcs / class / corlib / System.IO / FileLoadException.cs
index cf125c98be2b031db3d600abd3248fdda9077b0a..2ee1546b36c657cb39a5bfd3fa0a49457d0a1e3b 100755 (executable)
@@ -9,11 +9,12 @@
 //
 
 using System.Globalization;
+using System.IO;
 using System.Runtime.Serialization;
 
 namespace System.IO {
        [Serializable]
-       public class FileLoadException : SystemException {
+       public class FileLoadException : IOException {
 
                // Fields
                string msg;
@@ -34,6 +35,13 @@ namespace System.IO {
                        msg = message;
                }
 
+               public FileLoadException (string message, string fileName)
+                       : base (message)
+               {
+                       this.msg = message;
+                       this.fileName = fileName;
+               }               
+
                public FileLoadException (string message, Exception inner)
                        : base (message, inner)
                {
@@ -41,6 +49,14 @@ namespace System.IO {
                        this.inner = inner;
                }
 
+               public FileLoadException (string message, string fileName, Exception inner)
+                       : base (message, inner)
+               {
+                       this.msg = message;
+                       this.fileName = fileName;
+                       this.inner = inner;
+               }
+
                protected FileLoadException (SerializationInfo info, StreamingContext context)
                {
                        fileName = info.GetString ("FileLoad_FileName");
@@ -50,7 +66,12 @@ namespace System.IO {
                // Properties
                public override string Message
                {
-                       get { return msg; }
+                       get {
+                               if (fileName != null)
+                                       return Locale.GetText (msg + ": " + fileName);
+                               else
+                                       return msg;
+                       }
                }
 
                public string FileName
@@ -70,6 +91,16 @@ namespace System.IO {
                        info.AddValue ("FileLoad_FileName", fileName);
                        info.AddValue ("FileLoad_FusionLog", fusionLog);
                }
-               
+
+               public override string ToString ()
+               {
+                       string result = GetType ().FullName + ": " + Message;
+                       if (this.InnerException != null)
+                               result +=" ----> " + InnerException;
+                       if (this.StackTrace != null)
+                               result += '\n' + StackTrace;
+
+                       return result;
+               }
        }
 }