Условная обработка исключений? - PullRequest
0 голосов
/ 28 апреля 2020

Условная обработка исключений?

Мы используем C#. Я пытаюсь создать систему в нашем программном обеспечении, которая отслеживает и восстанавливает данные, над которыми работал пользователь, в случае возникновения sh.

У нас есть существующий код восстановления, который перезагружает завершенный рабочий набор, и я должен вызвать эти функции. Мы хотим избежать дублирования кода.

Однако мои данные, по определению, являются неполными, и я сталкиваюсь с проблемой, когда при пустом поле никакие дополнительные поля не загружаются.

Люди кто написал эти функции, хочет получить исключения, чтобы они знали, когда у них есть проблема с данными.

Я знаю, что у меня есть проблема с данными, и я просто пытаюсь получить как можно больше обратно.

Есть ли способ сделать что-то вроде

a) условного try / catch, чтобы вы могли управлять им до такой степени, чтобы можно было устанавливать, когда обрабатываются исключения и когда они генерируются?

или

b) какая-то возможность «по ошибке возобновить следующее», но с дополнительным предупреждением, что ее можно отключить. Это переносится из VB6, и «возобновление следующего» было таким, каким оно было там обработано, но они не хотят использовать это на этот раз - на этот раз они хотят знать об ошибках. Однако, если (если он существует и) его можно включать и выключать, он будет работать для нас обоих.

Есть идеи?

Спасибо всем!

Ответы [ 2 ]

0 голосов
/ 28 апреля 2020

Добавлена ​​куча блоков try / catch с использованием предложения when. Код стал

try {function1 ()} catch, когда (! NormalMode) {}

Они получают исключения, пока я получаю свои уловы.

0 голосов
/ 28 апреля 2020

Если вы знаете указанные c ошибки, которые вы хотите восстановить, и войдите в систему. Вы можете поймать их специально Ресурсы

в блоке перехвата просто войдите в систему и сделайте все, что когда-либо занесло в лог c, которое вам нужно восстановить. Тогда у вас может быть более общий c исключение, чтобы генерировать неожиданные ошибки.

...