view Implab/ExceptionHelpers.cs @ 261:05a87f575512 v3

Добавлена метка v3.0.6 для набора изменений 547a2fc0d93e
author cin
date Fri, 13 Apr 2018 19:15:11 +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);
        }
    }
}