Първо, стартирам приложенията си с изключения, хвърлени при всяка грешка (обработена или не).
Второ, използвам TypeConverter
за преобразуване от потребителски въведен низ в действителния обект.
Трето TypeConverter
не предлага TryConvert
метод, така че съм блокиран да използвам изключения за валидиране, използвайки този доста грозен код тук:
try
{
this._newValue = null;
#pragma Magic_SuppressBreakErrorThrown System.Exception
this._newValue = this.Converter.ConvertFromString(this._textBox.Text);
#pragma Magic_ResumeBreakErrorThrown System.Exception
this.HideInvalidNotification();
}
catch (Exception exception)
{
if (exception.InnerException is FormatException)
{
this.ShowInvalidNotification(this._textBox.Text);
}
else
{
throw;
}
}
Намирам за доста разсейващо изпълнението на VS break всеки път, когато въвеждам -
от -1
или някакъв друг невалиден знак. Бих могъл да използвам нещо подобно на това, но не всички типове, които конвертирам да има и метод TryParse
.
Надявам се, че може да има някакъв начин да деактивирам прекъсването на секцията от код в рамките на try
, без да променя моите настройки за изключение.