Size: a a a

2020 November 05

GV

Gukov Viktor in learn.java
Дмитрий
Почему джава кидает эксепш ArrayIndexOutOfBoundsException по второму значению массива? Размер 1, обращаюсь к элементу 0
Индексация массивов идёт с нуля
источник

L

Linnik 🎄 in learn.java
Дмитрий
Почему джава кидает эксепш ArrayIndexOutOfBoundsException по второму значению массива? Размер 1, обращаюсь к элементу 0
У тебя именно размер 1
источник

DC

Denis Chikanov in learn.java
John Doe
В прямом: у catch всегда должен быть аргумент как я вижу. Зачем?
1) Если тебе хочется, никто не мешает ловить Throwable, как родителя иерархии.
2) Вообще-то ты можешь хотеть разные исключения обрабатывать по-разному. Начиная от разных сообщений об ошибках и заканчивая принципиально разной логикой (упасть в одном случае, проигнорировать в другом, как-то отрекавериться и продолжить работу в третьем)
источник

JD

John Doe in learn.java
Denis Chikanov
1) Если тебе хочется, никто не мешает ловить Throwable, как родителя иерархии.
2) Вообще-то ты можешь хотеть разные исключения обрабатывать по-разному. Начиная от разных сообщений об ошибках и заканчивая принципиально разной логикой (упасть в одном случае, проигнорировать в другом, как-то отрекавериться и продолжить работу в третьем)
Спасибо :) Как пойму ответ отпишусь
источник

Д

Дмитрий in learn.java
Linnik 🎄
У тебя именно размер 1
Это разве не так выглядит?
источник

GV

Gukov Viktor in learn.java
Дмитрий
Это разве не так выглядит?
Ага, только в коде ты обращаешься ко второму столбцу
источник

DC

Denis Chikanov in learn.java
Дмитрий
Это разве не так выглядит?
Так и выглядит, как следствие, элемента a[i][1] не существует.
источник

Д

Дмитрий in learn.java
Ля, извините за тупняк но я всё ещё не догоняю. Размер указан 1. Соответственно у меня только 0 индекс может быть
источник

GV

Gukov Viktor in learn.java
Дмитрий
Ля, извините за тупняк но я всё ещё не догоняю. Размер указан 1. Соответственно у меня только 0 индекс может быть
4 строка кода. Ты указал индекс 1 вместо 0
источник

DC

Denis Chikanov in learn.java
Дмитрий
Ля, извините за тупняк но я всё ещё не догоняю. Размер указан 1. Соответственно у меня только 0 индекс может быть
Да, а в коде у тебя есть обращение [i][1], что очевидно противоречит только что тобой написанному.
источник

G

GladkiyKriminal in learn.java
Ребят, вопрос такой, как логически объяснить то, что нельзя создать объект родителя с ссылкой типа дочеренего класса?(ну можно скастить явно, но это ж не тру вроде как и может быть клас каст экспешн)
источник

Д

Дмитрий in learn.java
@chikanov @pepeisalreadytaken
Ух, уже в глаза долблюсь) Спасибо, тут уже невнимательность
источник

DC

Denis Chikanov in learn.java
GladkiyKriminal
Ребят, вопрос такой, как логически объяснить то, что нельзя создать объект родителя с ссылкой типа дочеренего класса?(ну можно скастить явно, но это ж не тру вроде как и может быть клас каст экспешн)
Выбери любую удобную тебе пару объектов с отношениями типов "родитель-ребёнок[подтип]" и попробуй подставить их в такую строчку присвоения мысленно.
У меня есть ящик для яблок, я кладу туда какой-то фрукт (про который я не знаю, что он яблоко) - сомнительная операция. То, что ты пытаешься сделать.
У меня есть ящик для фруктов, я кладу туда яблоко. Вроде всё хорошо.
источник

GV

Gukov Viktor in learn.java
GladkiyKriminal
Ребят, вопрос такой, как логически объяснить то, что нельзя создать объект родителя с ссылкой типа дочеренего класса?(ну можно скастить явно, но это ж не тру вроде как и может быть клас каст экспешн)
Потому что родитель ничего не знает о дополнительных свойствах потомка, так как он (потомок) появился позже.
источник

G

GladkiyKriminal in learn.java
@chikanov @pepeisalreadytaken огромное вам спасибо ребят
источник
2020 November 06

..

... ... in learn.java
John Doe
Спасибо :) Как пойму ответ отпишусь
Вот код в котором показывается зачем это нужно:

try {
   char[] letters = {'a', 'b', 'c', 'd'};
   int index = new java.util.Scanner(System.in).nextInt();
   System.out.println("letter / 0: " + ((int) letters[index])/0);
} catch(ArrayIndexOfBoundException e) {
   System.out.println("Your index is not correctly.");
} catch(ArithmeticException e) {
   System.out.println("Your index is correctly, but i divided your letter by zero");
}

Но если ты хочешь обрабатывать все исключения(правда без Error, но это можно сделать заменив в catch класс Exception на Throwable):

try {
   int i = 10/0;
} catch(Exception allException) {
   System.out.println("Словили исключение(любое, вне зависимоти от его типа, потому что все исключения наследуются от класса Exception): " + allExcption);
}
источник

..

... ... in learn.java
... ...
Вот код в котором показывается зачем это нужно:

try {
   char[] letters = {'a', 'b', 'c', 'd'};
   int index = new java.util.Scanner(System.in).nextInt();
   System.out.println("letter / 0: " + ((int) letters[index])/0);
} catch(ArrayIndexOfBoundException e) {
   System.out.println("Your index is not correctly.");
} catch(ArithmeticException e) {
   System.out.println("Your index is correctly, but i divided your letter by zero");
}

Но если ты хочешь обрабатывать все исключения(правда без Error, но это можно сделать заменив в catch класс Exception на Throwable):

try {
   int i = 10/0;
} catch(Exception allException) {
   System.out.println("Словили исключение(любое, вне зависимоти от его типа, потому что все исключения наследуются от класса Exception): " + allExcption);
}
Обрабатываем сразу несколько исключений.
источник

JD

John Doe in learn.java
... ...
Обрабатываем сразу несколько исключений.
Спасибо. Очень наглядно
источник

V

Vladimir in learn.java
доброй ночи, может кто знает, почему когда я указываю url так, возникает :

javax.naming.NameNotFoundException: Name [${jdbc.url}] is not bound in this Context. Unable to find [${jdbc.url}].

а когда вместо url пишу путь, все норм ? И как сделать, чтобы в url был этот путь?
источник

V

Vladimir in learn.java
источник