У меня есть функция Перезаписать , которая выдает исключение, когда объект заблокирован пользователем.
На данный момент мой код
public class MyObject<T>
{
//...other methods,...
public void Overwrite(T value)
{
if (IsLocked)
throw new Exception("You cannot touch the data you don't own");
this.Value = value;
OnUpdate?.Invoke(value);
}
}
Я используюнесколько MyObject в моем коде, и когда для IsLocked установлено значение true, мое исключение напрямую захватывается IDE в методе Overwrite .Итак, я не могу понять, откуда возникла ошибка (я имею в виду строку, где я могу найти ошибочный вызов Перезаписать .
См. Ниже:
Где я хочу, чтобы мое исключение происходило, когда я вызываю MyObject.Overwrite (), тогда я вижу неисправную строку (и неисправный объект).
Я пробовал несколько методов, таких как try-catch-throw, ... но ничего не работает.
Кстати, я впервые создаю исключение в CSharp, и обычно все исключения, с которыми я сталкивался в прошлом, были обработаны на ошибочной линии...
РЕДАКТИРОВАТЬ : Я ожидаю еще что-то вроде этого: