Как я могу помешать этому исключению остановить остальную часть выполнения? [дубликат]C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Как я могу помешать этому исключению остановить остальную часть выполнения? [дубликат]

Сообщение Anonymous »

Предыстория: я предоставляю студентам скелет dll-файла. В этом файле будут методы, которые учащиеся должны заполнить с помощью .NET C#.
Студенты возьмут свой скомпилированный файл dll и поместят его в мой раздел «Посмотри, как ты» re do" Приложение, которое проверяет все методы на наличие всего, что у них должно быть, и выдает им процент выполнения.
В моем приложении "Посмотри, как дела" для каждого потенциально отсутствующего/сломанного содержимого, у меня есть блок try/catch, который либо выполняется успешно и добавляет истинное значение в список логических значений, который хранит их оценку для любого данного класса/структуры, либо перехватывает ошибку и добавляет значение false, если критерии не были соблюдены. встретились или выдается ошибка. Выглядит это так:

Код: Выделить всё

List testResults;

testResults = new List();
Print("Starting Engine Tools testing.\n");

try
{
EngineTools.Print("Testing Print\n");
testResults.Add(true);
} catch (Exception ex)
{
Print("Print Method in EngineTools Failed");
testResults.Add(false);
}
Обычно этот код и программа «Посмотрите, как у вас дела» работают должным образом при использовании хорошего dll-файла. Однако, когда я заменяю хорошую dll на плохую (из нее практически все удалено, кто знает, что на это возразят студенты...) программа делает первую (и единственную) попытку запустить EngineTools.Print( объектное сообщение) и выдает:

Код: Выделить всё

"Unhandled Exception: System.MissingMethodException: Method not found: 'Void GameEngine.EngineTools.Print(System.Object)'."
Вполне разумно, поскольку я удалил метод из dll для тестирования... за исключением той части, где он должен обрабатываться оператором try/catch, но вместо этого он останавливает выполнение программы и не продолжает выполнение следующих тестов. Я знаю, что выполнение программы не продолжается, потому что в конце выполнения программы есть подсчет очков, который не отображается.
Я что-то упускаю из виду? Он должен увидеть, что метод не существует, перейти к блоку catch, добавить false к результатам теста, а затем перейти к следующему тесту, верно?

Подробнее здесь: https://stackoverflow.com/questions/783 ... -execution
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»