Mercurial > pub > ImplabNet
comparison Implab/Safe.cs @ 66:790e8a997d30
Refactoring
| author | cin | 
|---|---|
| date | Thu, 14 Aug 2014 18:08:09 +0400 | 
| parents | c0bf853aa04f | 
| children | efcb076407a7 | 
   comparison
  equal
  deleted
  inserted
  replaced
| 65:653c4e04968b | 66:790e8a997d30 | 
|---|---|
| 1 using System; | 1 using System; | 
| 2 using System.Collections.Generic; | 2 using System.Collections.Generic; | 
| 3 using System.Linq; | 3 using System.Linq; | 
| 4 using System.Text; | 4 using System.Text; | 
| 5 using System.Text.RegularExpressions; | 5 using System.Text.RegularExpressions; | 
| 6 using System.Diagnostics; | |
| 6 | 7 | 
| 7 namespace Implab | 8 namespace Implab | 
| 8 { | 9 { | 
| 9 public static class Safe | 10 public static class Safe | 
| 10 { | 11 { | 
| 34 { | 35 { | 
| 35 var disp = obj as IDisposable; | 36 var disp = obj as IDisposable; | 
| 36 if (disp != null) | 37 if (disp != null) | 
| 37 disp.Dispose(); | 38 disp.Dispose(); | 
| 38 } | 39 } | 
| 40 | |
| 41 [DebuggerStepThrough] | |
| 42 public static IPromise<T> GuargPromise<T>(Func<T> action) { | |
| 43 ArgumentNotNull(action, "action"); | |
| 44 | |
| 45 var p = new Promise<T>(); | |
| 46 try { | |
| 47 p.Resolve(action()); | |
| 48 } catch (Exception err) { | |
| 49 p.Reject(err); | |
| 50 } | |
| 51 | |
| 52 return p; | |
| 53 } | |
| 54 | |
| 55 [DebuggerStepThrough] | |
| 56 public static IPromise<T> GuardPromise<T>(Func<IPromise<T>> action) { | |
| 57 ArgumentNotNull(action, "action"); | |
| 58 | |
| 59 try { | |
| 60 return action(); | |
| 61 } catch (Exception err) { | |
| 62 return Promise<T>.ExceptionToPromise(err); | |
| 63 } | |
| 64 } | |
| 39 } | 65 } | 
| 40 } | 66 } | 
