##// END OF EJS Templates
minor changes
minor changes

File last commit:

r66:790e8a997d30 default
r84:34bb2f32634d v2
Show More
Safe.cs
66 lines | 2.0 KiB | text/x-csharp | CSharpLexer
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
using System.Diagnostics;
namespace Implab
{
public static class Safe
{
public static void ArgumentMatch(string param, string name, Regex rx) {
if (rx == null)
throw new ArgumentNullException("rx");
if (!rx.IsMatch(param))
throw new ArgumentException(String.Format("A prameter value must match {0}", rx), name);
}
public static void ArgumentNotEmpty(string param, string name) {
if (String.IsNullOrEmpty(param))
throw new ArgumentException("A parameter can't be empty", name);
}
public static void ArgumentNotNull(object param, string name) {
if (param == null)
throw new ArgumentNullException(name);
}
public static void ArgumentInRange(int arg, int min, int max, string name) {
if (arg < min || arg > max)
throw new ArgumentOutOfRangeException(name);
}
public static void Dispose<T>(T obj) where T : class
{
var disp = obj as IDisposable;
if (disp != null)
disp.Dispose();
}
[DebuggerStepThrough]
public static IPromise<T> GuargPromise<T>(Func<T> action) {
ArgumentNotNull(action, "action");
var p = new Promise<T>();
try {
p.Resolve(action());
} catch (Exception err) {
p.Reject(err);
}
return p;
}
[DebuggerStepThrough]
public static IPromise<T> GuardPromise<T>(Func<IPromise<T>> action) {
ArgumentNotNull(action, "action");
try {
return action();
} catch (Exception err) {
return Promise<T>.ExceptionToPromise(err);
}
}
}
}