![]() |
Модераторы: LSD, AntonSaburov |
![]() ![]() ![]() |
|
Elene |
|
||||||
Новичок Профиль Группа: Участник Сообщений: 36 Регистрация: 26.9.2004 Репутация: нет Всего: нет |
Подскажите, пожалуйста, как решить проблему с unreported exception java.io.IOException.
Есть класс:
В нем есть методы для инициализации каждого члена, которые сами по себе прекрасно справляются со своей задачей. Привожу первый:
Есть второй класс, который использует GUI, в котором есть объект класса Bdd, и в котором есть меню, кликнув на JMenuItem, которого я должна вызвать ту самую описанную выше методу lireBddsFabr(String nomFichierFab):
Вот тут-то на строчке bdDonnees.lireBddsFabr(nomFichier); и появляется: unreported exception java.io.IOException; must be caught or declared to be thrown bdDonnees.lireBddsFabr(nomFichier); А я совершенно не понимаю, что я должна исправить. Объясните, пожалуйста. |
||||||
|
|||||||
LSD |
|
||||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
Это ошибка времени компиляции, которая возникает когда компилятор обнаруживает возможность возникновения "контролируемых" ошибок в коде, и не находит обработчик для данной ошибки или декларирования возможности ее возникновения. В данной ситуации есть два варианта:
1) окружить bdDonnees.lireBddsFabr(nomFichier); try...catch
2) декларировать ошибку как "кидаемую"
-------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
||||
|
|||||
Elene |
|
|||
Новичок Профиль Группа: Участник Сообщений: 36 Регистрация: 26.9.2004 Репутация: нет Всего: нет |
Спасибо.
|
|||
|
||||
Domestic Cat |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5452 Регистрация: 3.5.2004 Где: Dallas, US Репутация: 50 Всего: 172 |
actionPerformed не можеt бросать иксепшн, поскольку метод, который делает оверрайд метода суперкласса (интерфейса) ne mожет бросать иксепшны, не объявленныe при декларации методa суперкласса. -------------------- |
|||
|
||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
Значит пункт 2 вычеркиваем
![]() -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
Elene |
|
|||
Новичок Профиль Группа: Участник Сообщений: 36 Регистрация: 26.9.2004 Репутация: нет Всего: нет |
Только теперь я получила еще более страшную ошибку:
actionPerformed(java.awt.event.ActionEvent) in Tp21 cannot implement actionPerformed(java.awt.event.ActionEvent) in java.awt.event.ActionListener; overridden method does not throw java.io.IOException public class Tp21 extends JFrame implements ActionListener ^ Как дальше быть? Добавлено @ 20:36 Ура!!! Я вычеркнула и все заработало. Большое спасибо!!! |
|||
|
||||
Domestic Cat |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5452 Регистрация: 3.5.2004 Где: Dallas, US Репутация: 50 Всего: 172 |
этo был второй способ kоторый не сработал
![]() -------------------- |
|||
|
||||
Elene |
|
|||
Новичок Профиль Группа: Участник Сообщений: 36 Регистрация: 26.9.2004 Репутация: нет Всего: нет |
Кажется, я рано порадовалась. Это оно откомпелировалось без ошибки, а вот когда я решила все это запустить, т.е. на кнопочку кликнуть в меню, получилось вот что:
Exception occurred during event dispatching: java.lang.NullPointerException at Tp2.actionPerformed(Tp2.java:191) at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:14 45) at javax.swing.AbstractButton$ForwardActionEvents.actionPerformed(Abstra ctButton.java:1499) at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel .java:373) at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:245 ) at javax.swing.AbstractButton.doClick(AbstractButton.java:274) at javax.swing.plaf.basic.BasicMenuItemUI$MouseInputHandler.mouseRelease d(BasicMenuItemUI.java:882) at java.awt.Component.processMouseEvent(Component.java:3710) at java.awt.Component.processEvent(Component.java:3539) at java.awt.Container.processEvent(Container.java:1159) at java.awt.Component.dispatchEventImpl(Component.java:2588) at java.awt.Container.dispatchEventImpl(Container.java:1208) at java.awt.Component.dispatchEvent(Component.java:2492) at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:2451 ) at java.awt.LightweightDispatcher.processMouseEvent(Container.java:2216) at java.awt.LightweightDispatcher.dispatchEvent(Container.java:2125) at java.awt.Container.dispatchEventImpl(Container.java:1195) at java.awt.Window.dispatchEventImpl(Window.java:923) at java.awt.Component.dispatchEvent(Component.java:2492) at java.awt.EventQueue.dispatchEvent(EventQueue.java:334) at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchTh read.java:126) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThre ad.java:93) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:88) at java.awt.EventDispatchThread.run(EventDispatchThread.java:80) Что это все значит, и откуда может взяться NullPointerException, если я его уже отловила в самой функции? |
|||
|
||||
Domestic Cat |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5452 Регистрация: 3.5.2004 Где: Dallas, US Репутация: 50 Всего: 172 |
А что в строкe 191?
-------------------- |
|||
|
||||
Elene |
|
|||
Новичок Профиль Группа: Участник Сообщений: 36 Регистрация: 26.9.2004 Репутация: нет Всего: нет |
Как раз bdDonnees.lireBddsFabr(nomFichier);
Добавлено @ 21:16 На nomFichier я сделала вывод, он не пустой, а с названием файла, который надо считать. Добавлено @ 21:22 Даже я сделала на прямую загрузку файла без FileDialog, т.е.
Все тот же NullPointerException. Не могу понять, как это может быть. Может быть у меня в самом методе что-то напутано? |
|||
|
||||
Domestic Cat |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5452 Регистрация: 3.5.2004 Где: Dallas, US Репутация: 50 Всего: 172 |
Проверь, можet bdDonnees == null. Если неt, зaпостi код lireBddsFabr()
-------------------- |
|||
|
||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
bdDonnees определенно null.
-------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
Elene |
|
|||
Новичок Профиль Группа: Участник Сообщений: 36 Регистрация: 26.9.2004 Репутация: нет Всего: нет |
Да, действительно, так и было. Я ее обявила в мемберах, как private Bdd bdDonnees; , а в конструкторе написала: Bdd bdDonnees = new Bdd(); вместо bdDonnees = new Bdd(); Отсюда и NullPointerException. Огромное спасибо. Я сама бы никогда не догадалась, где "собака зарыта". Сейчас все отлично работает, можно сказать, благодаря Вам.
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "Java" | |
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Java: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |