0 / 0 / 0
Регистрация: 17.03.2018
Сообщений: 108
1

Exceptions

16.12.2018, 17:45. Показов 1826. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
1) Создайте 2 класса-наследника от Exception: NullException и NoNumberException.

2) В классе NullException реализуйте метод toString(), в котором верните строку: «Вы ничего не ввели».

3) В классе NoNumberException реализуйте метод toString(), в котором верните строку: «Вы ввели не число».

4) Доработайте программу из упражнения к уроку «Генерация исключений», чтобы в зависимости от ошибки выбрасывалось соответствующее исключение.

5) В блоке catch выведите в JOptionPane сам объект исключения.

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
public static void main(String[] args) throws NoNumberException { 
String in = JOptionPane.showInputDialog(null, "Введите число"); 
try{ 
if(in == null) throw new NullException(); 
if(in == "") throw new NoNumberException(); 
int n = Integer.parseInt(in); 
JOptionPane.showMessageDialog(null, "Спасибо!"); 
}catch(NullException e){ 
JOptionPane.showMessageDialog(null, e); 
} 
catch(NoNumberException e){ 
JOptionPane.showMessageDialog(null, e); 
} 
} 
 
--------------------------------- 
 
public class NullException extends Exception { 
public String toString(){ 
return "Вы ввели не число"; 
} 
} 
 
--------------------------------- 
 
public class NoNumberException extends Exception { 
public String toString(){ 
return "Вы ничего не ввели"; 
} 
}
У меня получилось применить исключение NullException, но как применить исключение NoNumberException? Просто применив Exception еще можно, а чтобы определить что это не число я не знаю. Буду рад за подсказки, спасибо.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.12.2018, 17:45
Ответы с готовыми решениями:

Exceptions
Здравствуйте! В данный момент изучаю исключения и необходимо было создать исключение, если юзер...

Java Exceptions
Напишите пожалуйста маленький код, который вызывал бы одно из следующих исключений: internal error,...

Exceptions wrapping
Пытаюсь понять, где и как это использовать. 1. Предположим есть метод public void...

InputStream exceptions
Дано: серверный чат на TCP сокетах. Есть DataInputStream, который принимает в себя InputStream из...

6
Автоматизируй это!
Эксперт Python
7107 / 4610 / 1215
Регистрация: 30.03.2015
Сообщений: 13,236
Записей в блоге: 29
16.12.2018, 18:28 2
tracerX, берем переменную in перебираем посимвольно, проверяем что каждый символ-цифра или точка(разделитель дробной части). Если хоть один раз не вышеуказанное то прерываем проверку и кидаем твое исключение. Проверять можно например с помощью Character.isDigit()
1
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
16.12.2018, 18:30 3
зачем кидать исключение, чтобы тут же его поймать? какой-то сюр.
Цитата Сообщение от tracerX Посмотреть сообщение
чтобы определить что это не число
проверь, что во введенной строке есть только цифры. Гугли регулярные выражения, например.
0
109 / 89 / 25
Регистрация: 02.06.2018
Сообщений: 259
16.12.2018, 18:34 4
Java
1
throws NoNumberException
а зачем это, если исключение обрабатывается в try catch?
0
729 / 430 / 66
Регистрация: 22.12.2013
Сообщений: 2,289
Записей в блоге: 19
16.12.2018, 19:57 5
Лучший ответ Сообщение было отмечено tracerX как решение

Решение

Ну, наверное как-то так. Работает для java8 и выше.
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
/*
 
 */
package exeptions;
 
import javax.swing.JOptionPane;
 
/**
 *
 * @author vvm
 */
public class TestExceptins {
 
    public static void main(String[] args) throws NoNumberException,NullException {
 
        try {
            String in = JOptionPane.showInputDialog(null, "Введите число");
 
            if (in.trim().length() == 0) {
                throw new NullException();
            }
            boolean isNumeric = in.chars().allMatch(Character::isDigit);
            if (isNumeric == false) {
                throw new NoNumberException();
            }
 
            JOptionPane.showMessageDialog(null, "Спасибо!");
 
        } catch (NullException e) {
            JOptionPane.showMessageDialog(null, e.toString());
        } catch (NoNumberException e) {
             JOptionPane.showMessageDialog(null, e.toString());
        }
 
    }
}
Добавлено через 11 минут
PS. Можно без try.. catch, но тогда в диалоговое окно выводиться не будет.

Добавлено через 6 минут

Не по теме:

Пора мне поменять отношение и не решать ваши задачки за "Спасибки"

1
0 / 0 / 0
Регистрация: 17.03.2018
Сообщений: 108
17.12.2018, 10:30  [ТС] 6
спасибо большое, крайний вариант - что надо.
0
2677 / 1995 / 496
Регистрация: 17.02.2014
Сообщений: 9,357
17.12.2018, 12:03 7
Цитата Сообщение от vvm28 Посмотреть сообщение
за "Спасибки"

Не по теме:

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

0
17.12.2018, 12:03
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.12.2018, 12:03
Помогаю со студенческими работами здесь

Как правильно сделать рефакторинг Exceptions
Подскажите, как правильно сделать рефакторинг Exceptions. Например вынести в отдельный метод и тп....

Exceptions без вылетов. Стоит ли дебажить?
После вывода двухмерного ArrayList получается такой текст: Городничий Exception in thread...

Java Exceptions. Что делать с большим количеством исключений?
Приветствую! Допустим, у меня есть приложение с консольным вводом/выводом. Пользователь может...

Exceptions в Qt
Здравствуйте! В Qt новичок (в принципе и в С++ нуб), прошу помощи. Пытаюсь обработать исключения,...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

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