Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / RuntimeException, Exception и, например, SQLException, разница? / 7 сообщений из 7, страница 1 из 1
29.06.2007, 15:12:14
    #34629095
junixar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
RuntimeException, Exception и, например, SQLException, разница?
Всем, привет. Объясните, пожалуйста, в чём разница, почему код
Код: plaintext
1.
2.
3.
 try {}
 catch  (Exception ex)
{}
компилируется, а код, к примеру
Код: plaintext
1.
2.
3.
 try {}
 catch  (java.sql.SQLException ex)
{}
не компилируется? (Unreachable catch block)

Было бы понятно, если бы в первом варианте был наследник RuntimeException. А так - не понятно.

Всем заранее спасибо.
...
Рейтинг: 0 / 0
29.06.2007, 15:29:39
    #34629163
Timm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
RuntimeException, Exception и, например, SQLException, разница?
junixarВсем, привет. Объясните, пожалуйста, в чём разница, почему код
Код: plaintext
1.
2.
3.
 try {}
 catch  (Exception ex)
{}
компилируется, а код, к примеру
Код: plaintext
1.
2.
3.
 try {}
 catch  (java.sql.SQLException ex)
{}
не компилируется? ( Unreachable catch block )

Было бы понятно, если бы в первом варианте был наследник RuntimeException. А так - не понятно.

Всем заранее спасибо.
Не ври. Ошибка будет другая.
http://java.sun.com/docs/books/jls/second_edition/html/exceptions.doc.html
...
Рейтинг: 0 / 0
29.06.2007, 15:44:31
    #34629224
junixar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
RuntimeException, Exception и, например, SQLException, разница?
Исправляюсь, будет так:
exception java.sql.SQLException is never thrown in body of corresponding try statement
...
Рейтинг: 0 / 0
29.06.2007, 15:57:03
    #34629263
Garrick
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
RuntimeException, Exception и, например, SQLException, разница?
junixarИсправляюсь, будет так:
exception java.sql.SQLException is never thrown in body of corresponding try statement

Это значит примерно следующее: "В данном блоке SQLException возникнуть никогда не может, т.к. нет ни одного вызова из java.sql."
...
Рейтинг: 0 / 0
29.06.2007, 16:06:15
    #34629294
vas0
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
RuntimeException, Exception и, например, SQLException, разница?
если коротко то так:
Код: plaintext
1.
2.
 public   class  Throwable  implements  Serializable {
...
}
корень всех бед в Java.

Код: plaintext
1.
2.
 public   class  Error  extends  Throwable {
...
}
системные ошибки (серьезные), их прикладным программистам обрабатывать не надо. В идеале это то что никогда не должно произойти. Писать такие ошибки в сигнатуру метода throws не надо. (Пример java машина падает по OutOfMemoryError.

Код: plaintext
1.
2.
 public   class  Exception  extends  Throwable {
...
}
проверяемые исключения, за их обработкой следит компилятор. Код не откомпилируется пока код не будет помещен в блок try/catch или нужно добавить throws. Некоторые считают что проверяемые исключения зло...

Код: plaintext
1.
2.
 public   class  RuntimeException  extends  Exception {
...
}
непроверяемые исключения, компилятору на них пофиг. Программист должен сам следить за обработкой такий исключений (компилятор не помогает).
...
Рейтинг: 0 / 0
02.07.2007, 06:03:24
    #34631062
junixar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
RuntimeException, Exception и, например, SQLException, разница?
Что означает ошибка, которую выдаёт компилятор, я прекрасно понимаю, спасибо.

В чём отличие Exception, RuntimeException и Error - тоже понимаю. Но заданный вопрос пока без ответа.

В чём отличие для компилятора между Exception и SQLException? Оба являются checked, должны либо явно перехватываться, либо объявляться как throws.

Почему в одном случае компилятор выдаёт ошибку, а в другом нет? Может быть потому, что RuntimeException наследуется от Exception и не наследуется от SQLException?
...
Рейтинг: 0 / 0
02.07.2007, 08:09:56
    #34631118
vas0
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
RuntimeException, Exception и, например, SQLException, разница?
junixarНо заданный вопрос пока без ответа. Нужен пример кода чтобы понимать о чем речь идет, а то так долго можно гадать.
junixarВ чём отличие для компилятора между Exception и SQLException? Допустим такой пример
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
     public   void  test(){


         // так откомпилируется, так как оба исключения обрабатываются
         try  {
            // тут может произойти IOException или SQLException
        }  catch  (Exception e) {
            e.printStackTrace();
        }


         // так не откомпилируется, так как обрабатывается только SQLException
         try  {
            // тут может произойти IOException или SQLException
        }  catch  (SQLException e) {
            e.printStackTrace();
        }
    }
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / RuntimeException, Exception и, например, SQLException, разница? / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]