Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Использование собственных исключений на Java 
:(
    Опции темы
Golovastik
Дата 13.12.2010, 01:37 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 389
Регистрация: 19.7.2009

Репутация: 1
Всего: 0



1)Скажите, зачем нужны собственные исключения?
2)Попробовал написать собственное исключение,оно не хочет работать, работает только стандартное исключение, почему так?
Вот этот код работает со стандартным исключением:
Код

package javaapplication3;
class MyException extends ArrayIndexOutOfBoundsException{

public MyException() {}
public MyException(int i){
super("Выход за пределы массива при индексе="+i);
}

}

public class Main{
public static void main (String []  args)  {
    try{
   int [] mas={1,2,3,4,5,6,7,8,9,10};
   for(int i=0; i<100; i++)
   {
    if( i < 0 || i >=10)
     throw  new MyException(i); //генерируем наше  исключение
    System.out.println(mas[i]);
       System.out.println(mas[-1]);
        
   }
    }catch(ArrayIndexOutOfBoundsException e){
        System.out.println(e.getMessage()+"\nОшибка");
    }
}
}


Если написать так:

Код

package javaapplication3;
class MyException extends ArrayIndexOutOfBoundsException{

public MyException() {}
public MyException(int i){
super("Выход за пределы массива при индексе="+i);
}

}

public class Main{
public static void main (String []  args)  {
    try{
   int [] mas={1,2,3,4,5,6,7,8,9,10};
   for(int i=0; i<100; i++)
   {
    if( i < 0 || i >=10)
     throw  new MyException(i); //генерируем наше  исключение
    System.out.println(mas[i]);
       System.out.println(mas[-1]);
        
   }
    }catch(MyException e){
        System.out.println(e.getMessage());
    }
}
}


Вываливается ошибка:
Код

run:
1
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: -1
        at javaapplication3.Main.main(Main.java:20)
Java Result: 1
BUILD SUCCESSFUL (total time: 0 seconds)


А как же тогда собственные исключения использовать, если только со стандартным работает?
PM MAIL   Вверх
mstalker26
Дата 13.12.2010, 01:51 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 206
Регистрация: 4.7.2009

Репутация: 4
Всего: 11



Тебе Temdegon, в этой теме написал как свои исключения бросать
http://forum.vingrad.ru/index.php?showtopi...t&p=2265259
Зачем новую тему создавать?

Это сообщение отредактировал(а) mstalker26 - 13.12.2010, 01:51
--------------------
Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
PM   Вверх
Temdegon
Дата 13.12.2010, 02:31 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 429
Регистрация: 11.10.2008
Где: Minsk

Репутация: 7
Всего: 9



Ваш код работает именно так, как он должен работать. Если вы ожидаете от него какого-то другого поведения, то опишите подробно, что вам нужно.
В строке 20 в первой итерации цикла возникает ArrayIndexOutOfBoundsException, которое вы не обрабатываете. Если вы ожидаете, что ваш catch(MyException e) будет реагировать на на ArrayIndexOutOfBoundsException, то это не так.
Собственные исключения нужны для того же, для чего и собственные классы.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0395 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.