Prashant Sharma Ответов: 1

Выбрасывать исключение из одного метода в другой в VB.NET


I am trying to throw exception from one method to another by that if any error occures then the main method will print it in message box. I have already done in c# but trying to write same in vb.net but always giving error when i throw it to another method.Thanks in advance for help.

shwoing эта ошибка "
Conversion from string "a" to type 'Integer' is not valid.'
"

Что я уже пробовал:

Public Async Function test() As Task(Of DataSet)

Попробуй

Dim ds как новый набор данных



Dim a, b как целое число
ля"
b = 7
Dim c = a / b


Await Task.Run(функция() адаптер.Заполнить(ДС))


Поймать ex как исключение
Бросать
Конец Попытки


Возврат ДС

Конечная Функция

Richard MacCutchan

"всегда давать ошибку"
Тогда, пожалуйста, скажите нам, в чем заключается ошибка!

Prashant Sharma

Преобразование из строки "a" в тип "Integer" недопустимо.'

Richard MacCutchan

Что из этого ты не понимаешь?

Prashant Sharma

сэр, я понимаю эту ошибку, но я хочу бросить эту ошибку на другой метод, с помощью которого я могу напечатать ее на сообщении.

Richard MacCutchan

Вы не можете, потому что это ошибка компилятора, а не исключение времени выполнения. Вам нужно сгенерировать правильное исключение: см. Обработка и создание исключений в .NET | Microsoft Docs[^].

Prashant Sharma

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

Richard MacCutchan

Когда вы создаете метод, который может вызвать исключение, то помещаете его в блок Try/Catch - стандартная практика. Но затем вам нужно проверить, какие исключения могут быть брошены, поэтому сначала поймайте их. Использование Catch для всех исключений, а затем их повторное создание-все это довольно бессмысленно, вы можете просто позволить своему приложению потерпеть крах. Но для конкретных исключений вы должны рассмотреть, что вы можете сделать: можете ли вы восстановить, нужно ли вам сохранить какую-то информацию, если вы разместите сообщение, может ли пользователь предпринять какие-либо полезные действия и т. д.?

Prashant Sharma

сэр большое спасибо Вам за это решение

Richard MacCutchan

Добро пожаловать.

1 Ответов

Рейтинг:
0

OriginalGriff

Если вы также не перехватываете исключения в коде, вызывающем этот метод, он делает именно то, что вы ему сказали: выбрасывает исключение, которое отладчик или исполняющее приложение находит необработанным, поэтому оно ломает ваш код.

Честно говоря, вся ваша жизнь Try блок избыточен: поскольку все, что вы делаете, это ловите каждый тип исключения и перестраиваете его, вы можете удалить Try, Catch, Throw, и End Try без каких-либо изменений в результатах!