You are viewing a plain text version of this content. The canonical link for it is here.
Posted to log4net-dev@logging.apache.org by ni...@apache.org on 2004/06/07 02:57:31 UTC
cvs commit: logging-log4net/src/Util SystemInfo.cs
nicko 2004/06/06 17:57:31
Modified: src/Util SystemInfo.cs
Log:
Make catches more specific where possible. Added method CreateArgumentOutOfRangeException
Revision Changes Path
1.5 +33 -2 logging-log4net/src/Util/SystemInfo.cs
Index: SystemInfo.cs
===================================================================
RCS file: /home/cvs/logging-log4net/src/Util/SystemInfo.cs,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- SystemInfo.cs 28 May 2004 21:30:02 -0000 1.4
+++ SystemInfo.cs 7 Jun 2004 00:57:31 -0000 1.5
@@ -166,7 +166,10 @@
// Lookup the host name
s_hostName = System.Net.Dns.GetHostName();
}
- catch
+ catch(System.Net.Sockets.SocketException)
+ {
+ }
+ catch(System.Security.SecurityException)
{
// We may get a security exception looking up the hostname
// You must have Unrestricted DnsPermission to access resource
@@ -181,7 +184,10 @@
s_hostName = Environment.MachineName;
#endif
}
- catch
+ catch(InvalidOperationException)
+ {
+ }
+ catch(System.Security.SecurityException)
{
// We may get a security exception looking up the machine name
// You must have Unrestricted EnvironmentPermission to access resource
@@ -520,6 +526,31 @@
return PocketGuid.NewGuid();
#else
return Guid.NewGuid();
+#endif
+ }
+
+ /// <summary>
+ /// Create a new instance of the <see cref="ArgumentOutOfRangeException"/> class
+ /// with a specified error message, the parameter name, and the value
+ /// of the argument.
+ /// </summary>
+ /// <param name="parameterName">The name of the parameter that caused the exception</param>
+ /// <param name="actualValue">The value of the argument that causes this exception</param>
+ /// <param name="message">The message that describes the error</param>
+ /// <returns>the ArgumentOutOfRangeException object</returns>
+ /// <remarks>
+ /// <para>
+ /// The Compact Framework does not support the 3 parameter constructor for the
+ /// <see cref="ArgumentOutOfRangeException"/> type. This method provides an
+ /// implementation that works for all platforms.
+ /// </para>
+ /// </remarks>
+ public static ArgumentOutOfRangeException CreateArgumentOutOfRangeException(string parameterName, object actualValue, string message)
+ {
+#if NETCF
+ return new ArgumentOutOfRangeException(message + " param: " + parameterName + " value: " + actualValue);
+#else
+ return new ArgumentOutOfRangeException(parameterName, actualValue, message);
#endif
}