Форум программистов, компьютерный форум, киберфорум
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.64/11: Рейтинг темы: голосов - 11, средняя оценка - 4.64
395 / 314 / 53
Регистрация: 14.08.2014
Сообщений: 1,010
1

Исключение через условие

01.06.2017, 09:59. Показов 2127. Ответов 8
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем привет!
Если условие верно, можно ли каким-то образом перейти в блок Catch исключения?
Да, можно искусственно его создать пытаясь делать вычисление с некорректными значениями переменных, но возможно есть что-то более приспособленное для таких целей?
VB.NET
1
2
3
4
5
6
7
            Try
                If myVar Is Nothing Then
                'Перейти в Catch
                End If
            Catch ex As Exception           
                Return False
            End Try
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.06.2017, 09:59
Ответы с готовыми решениями:

Какое условие if вызвало исключение?
Добрый день, Товарищи! Появился такой вопрос, возможно ли системно( без костылей.. вдруг есть...

Как создать исключение или условие для удаления видео в ВК?
Здравствуйте, я только потихоньку осваиваю программирование в целом. Мне нужно удалить много видео...

Исключение через if.then
Как сделать чтобы вылазило окно "заполните все поля", если 1 или больше полей Edit не заполнено c...

Проверка введенного числа через Console.ReadKey и исключение
Прохожу уроки по C# на канале youtube, там достаточно быстро проходят темы связанные с циклами и...

8
53 / 53 / 17
Регистрация: 12.02.2017
Сообщений: 261
01.06.2017, 11:56 2
Можно, для этого вызовите исключенение при равенству условия.
VB.NET
1
2
3
4
5
6
7
8
9
                Dim q(1) As Integer
            Try
                If myVar Is Nothing Then
                'Перейти в Catch
                q(2) = 0
                End If
            Catch ex As Exception           
                Return False
            End Try
1
es geht mir gut
11270 / 4752 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
01.06.2017, 12:05 3
VB.NET
1
2
3
4
5
6
7
8
     Try
                If myVar Is Nothing Then
                'Перейти в Catch
                  goto m
                End If
            Catch ex As Exception           
  m:              Return False
            End Try
2
395 / 314 / 53
Регистрация: 14.08.2014
Сообщений: 1,010
01.06.2017, 13:48  [ТС] 4
Navthe,
Цитата Сообщение от Дядя Корней Посмотреть сообщение
можно искусственно его создать пытаясь делать вычисление с некорректными значениями переменных, но возможно есть что-то более приспособленное для таких целей?
У вас как раз искусственный вызов исключения. Это понятно, возможно есть что-то специальное для таких целей, чтобы без велосипедов прыгнуть в Catch?

SoftIce, я так первым делом попробовал, не получается. Среда разработки ругается, что нельзя перепрыгивать в этот блок кода. Goto ведь в пределах текущего блока работает, а Catch это уже другая ветка.
2
SoftIce
01.06.2017, 13:51
  #5

Не по теме:

Цитата Сообщение от Дядя Корней Посмотреть сообщение
Среда разработки ругается,
Спасибо, написал не проверив..

0
Администратор
Эксперт .NET
17023 / 13375 / 5218
Регистрация: 17.03.2014
Сообщений: 27,353
Записей в блоге: 1
01.06.2017, 13:52 6
Лучший ответ Сообщение было отмечено Yury Komar как решение

Решение

Дядя Корней, не надо переходить в Catch. Исскуственная генерация исключения это плохая практика. Использование goto скорее запутывает прорамму. Поэтому просто не нужно этого делать. В данном случае лучше сделать так
VB.NET
1
2
3
4
5
6
7
            Try
                If myVar Is Nothing Then
                    Return False
                End If
            Catch ex As Exception           
                Return False
            End Try
Еще один момент. Лучше избегать Catch ex As Exception которые ловят все исключения с их последующим игнорированием. Есть риск проигнорировать исключение которое не нужно было игнорировать. Правильнее ловить конкретные исключения.
4
es geht mir gut
11270 / 4752 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
01.06.2017, 14:05 7
Цитата Сообщение от OwenGlendower Посмотреть сообщение
Исскуственная генерация исключения это плохая практика
Согласен, но, на всякий случай еще такой вариант -
VB.NET
1
2
3
4
5
6
7
8
9
        Try
            If myVar Is Nothing Then
                'Перейти в Catch
                Err.Raise(0)
            End If
        Catch ex As Exception
            Return False
        Finally
        End Try
0
53 / 53 / 17
Регистрация: 12.02.2017
Сообщений: 261
01.06.2017, 14:47 8
Дядя Корней, К сожалению нет такого перехода по условию в catch, да и catch нужен только для обрабоки исключений. Добавте ссылку с условия и с catch в общий код.
VB.NET
1
2
    Private Sub q()
    End Sub
0
117 / 110 / 31
Регистрация: 05.04.2014
Сообщений: 224
11.06.2017, 19:21 9
Цитата Сообщение от Дядя Корней Посмотреть сообщение
Если условие верно, можно ли каким-то образом перейти в блок Catch исключения?
Можно вызвать пользовательскую ошибку.
VB.NET
1
If myVar Is Nothing Then Err.Raise(666, , "myVar равно Nothing")
номер ошибки 0-512 зарезервирован системой, можно указать любой номер от 513 до 65535 и свой текст ошибки.
Или так:
VB.NET
1
2
3
4
5
6
7
        Try
            If myVar Is Nothing Then Err.Raise(0)
        Catch ex As Exception When myVar Is Nothing
            MsgBox("myVar равно Nothing")
        Catch ex As Exception 
            MsgBox(ex.Message)
        End Try
1
11.06.2017, 19:21
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.06.2017, 19:21
Помогаю со студенческими работами здесь

Исключение FireLoadException при воспроизведении видео через DirectX
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data;...

Необработанное исключение при отправке ответа через сокет
Доброго времени суток. Есть слот, связанный с сигналом: connect(clientSocket,...

Условие через счетчик
Здравствуйте. Имеется график нарастающей прямой, зависящей от времени. Подскажите, как сделать...

Через раз срабатывает исключение при добавлении в бд MS Server compact
Здравствуйте, столкнулся с проблемой, что при добавлении строки в таблицу через раз срабатывает...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru