2002-07-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
[mono.git] / mcs / class / corlib / System / NotFiniteNumberException.cs
1 //
2 // System.NotFiniteNumberException.cs
3 //
4 // Author:
5 //   Joe Shaw (joe@ximian.com)
6 //   Duncan Mak (duncan@ximian.com)
7 //
8 // (C) 2001 Ximian, Inc.  http://www.ximian.com
9 //
10 using System.Globalization;
11 using System.Runtime.Serialization;
12
13 namespace System {
14
15         [Serializable]
16         public class NotFiniteNumberException : ArithmeticException {
17                 double offending_number;
18
19                 // Constructors
20                 public NotFiniteNumberException ()
21                         : base (Locale.GetText ("The number encountered was not a finite quantity"))
22                 {
23                 }
24
25                 public NotFiniteNumberException (double offending_number)
26                 {
27                         this.offending_number = offending_number;
28                 }
29
30                 public NotFiniteNumberException (string message)
31                         : base (message)
32                 {
33                 }
34
35                 public NotFiniteNumberException (string message, double offending_number)
36                 {
37                         this.offending_number = offending_number;
38                 }
39
40                 public NotFiniteNumberException (string message, double offending_number, Exception inner)
41                         : base (message, inner)
42                 {
43                         this.offending_number = offending_number;
44                 }
45
46                 protected NotFiniteNumberException (SerializationInfo info, StreamingContext context)
47                         : base (info, context)
48                 {
49                         offending_number = info.GetDouble ("OffendingNumber");
50                 }               
51
52                 // Properties
53                 public double OffendingNumber {
54                         get {
55                                 return offending_number;
56                         }
57                 }
58
59                 // Method
60
61                 public override void GetObjectData (SerializationInfo info, StreamingContext context)
62                 {
63                         base.GetObjectData (info, context);
64                         info.AddValue ("OffendingNumber", offending_number);
65                 }
66         }
67 }