Я получаю эту ошибку при компиляции моей программы:Мой код запрашивает исключение быть выброшен, но когда я делаю, это говорит, что это не должно быть брошено
./GUI/mainWindow.java:30: error: unreported exception Exception; must be caught or declared to be thrown
clientUI.initClientUI();
^
1 error
Но мой метод фактически бросает исключение:
public final void initClientUI() throws Exception {
Однако, если я удалю часть «Исключение исключений», попробуйте выполнить компиляцию, а затем добавьте ее снова, программа успешно скомпилируется. Может ли кто-нибудь объяснить, почему это происходит?
EDIT:
Если добавить "бросает исключение" методу я звоню
public void actionPerformed(ActionEvent e) throws Exception { //<-----add Exception there
ClientWindow clientUI = new ClientWindow();
clientUI.initClientUI();
Я получаю эту ошибку:
./GUI/mainWindow.java:28: error: actionPerformed(ActionEvent) in <anonymous GUI.mainWindow$1> cannot implement actionPerformed(ActionEvent) in ActionListener
public void actionPerformed(ActionEvent e) throws Exception {
^
overridden method does not throw Exception
1 error
Что касается последней задачи (в EDIT) компилятор говорит, что это все: «переопределяется метод не выбрасывает исключение». То есть если вы переопределите какой-либо метод, сигнатура метода ** переопределенного метода не должна быть изменена **. – informatik01