Включение/выключение try/catch по условию на этапе компиляции. Возможно ли это? - C#
Формулировка задачи:
Всем доброго дня. При доработке и тестировании довольно большого проекта на ASP.NET (C#) возник вопрос: можно ли указать директиву DEBUG, с помощью которой можно включать/отключать блоки try/catch на этапе компиляции? Т.е. если идёт процесс разработки/отладки, то временно перехват исключений отключать, для релиза же нужно, чтобы все они включены. То есть чтобы нормально мог работать вот такой код:
В этом тестовом примере блоки try/catch почему-то не работают в любом случае, независимо от того, определена ли директива DEBUG. И ещё вопрос: возможно ли глобальное объявление директивы (#define DEBUG) (для всего проекта), чтобы не вставлять его в каждый файл?
#define DEBUG
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
#if DEBUG
#else
try
{
#endif
// здесь какой-либо код, который может привести к генерации исключения
// и в случае отладки гораздо удобнее получить "жёлтую страницу", чтобы понять причину
throw new Exception("Тестовая ошибка!");
#if DEBUG
#else
}
catch (Exception ex)
{
// вывод краткой информации об ошибке
lbTest.Text = "Перехвачена ошибка! Тескт: " + ex.Message;
};
#endif
}
}Решение задачи: «Включение/выключение try/catch по условию на этапе компиляции. Возможно ли это?»
textual
Листинг программы
throw e;