view Implab/ExceptionHelpers.cs @ 254:12c00235b105 v3

Добавлена метка v3.0.1-beta для набора изменений 34df34841225
author cin
date Mon, 12 Feb 2018 17:03:49 +0300
parents d82909310094
children
line wrap: on
line source

using System;
using System.Reflection;
using System.Runtime.ExceptionServices;

namespace Implab {
    static class ExceptionHelpers {
        public static Exception Rethrow(this Exception that) {
            ExceptionDispatchInfo.Capture(that).Throw();
            return new TargetInvocationException(that);
        }

        public static Exception Wrap(this Exception that) {
            if (that == null)
                return new Exception();
            else if (that is OperationCanceledException)
                return new OperationCanceledException("The operation has been cancelled", that);
            else
                return new TargetInvocationException(that);
        }
    }
}