2016-06-27 2 views
2

У меня есть много это в моем коде:Способ бросить исключение и журнал его

if (labelType == null) 
{ 
    var errorMessage = "Invalid Label Type Id Look up: " + labelTypeId; 
    log.Error(errorMessage); 
    throw new ApplicationException(errorMessage); 
} 

Я хотел бы сделать что-то вроде этого:

FailureActions.Fail("Invalid Label Type Id Look up: " + labelTypeId); 

И метод Fail бы инкапсулировать вышеуказанную логику.

Но этот беспорядок будет управлять логикой управления потоком. Компилятор больше не понимает, что я выбрал исключение.

Есть ли другой способ сконденсировать этот код? (который работает с анализом потока компилятора)

ответ

8

Сделайте свой метод регистрации верным исключением.

Вы можете написать

throw FailureActions.Fail("Invalid Label Type Id Look up: " + labelTypeId); 

Обратите внимание, что если вы забыли добавить throw в callsite (особенно, если ваш метод возвращает недействительным), ваше исключение будет молча отбрасываются.
Чтобы помочь с этим, вы можете сделать свой метод также исключением (но все же вернуть его, чтобы callsite мог написать throw).

+0

Работал отлично. Благодаря! – Vaccano

Смежные вопросы