Курс по java. Часть 3 (Рейтинг: -1)
Опять всем привет.
Как я и обещал начнем с исключений (try catch).
Это очень полезная фишка (такое есть в C++ и, если не ошибаюсь, в PHP).
Исключения очень полезны, когда какой либо объект не инициализировался или не может быть инициализирован. Как пример могу привести код:
Произошла бы ошибка, из-за которой приложение не отработало бы до конца.
В случае с try-catch при возникновении ошибки можно увидеть где произошла ошибка, причину.
Если после объявления функции написать «throw класс_исключения», то если будет ошибка функция не обратит на нее внимания, но если функция с throw вызвана в try-catch, то произойдет обработка исключения.
Думаю с этим более или менее разобрались. В примере будут и примеры исключений.
Перейдем к Thread. Это класс потоков (нитей). Многопоточность мы будем использовать в графическом интерфейсе, так что запоминаем.
Самые важные методы класса Thread — start (запускает новый поток параллельно выполнению программы), run (запускает новый поток, при этом программа ждет его завершения), stop (останавливает поток) и sleep(замораживает поток на указанное время (в миллисекундах))
Начиная с этой части вся информация по коду будет находиться внутри.
Добавил: Димон
04.11.2011 / 15:59Как я и обещал начнем с исключений (try catch).
Это очень полезная фишка (такое есть в C++ и, если не ошибаюсь, в PHP).
Исключения очень полезны, когда какой либо объект не инициализировался или не может быть инициализирован. Как пример могу привести код:
BufferedReader br=new BufferedReader(new FileReader(new File("D://test.txt"))); newString=br.readLine(); br.close();Что бы произошло, если бы файла test.txt небыло в этом месте, а исключение не стояло бы (при условии что пишем в IDE, которая не следит за исключениями (NetBeans и Eclipse следят за этим))?
Произошла бы ошибка, из-за которой приложение не отработало бы до конца.
В случае с try-catch при возникновении ошибки можно увидеть где произошла ошибка, причину.
Если после объявления функции написать «throw класс_исключения», то если будет ошибка функция не обратит на нее внимания, но если функция с throw вызвана в try-catch, то произойдет обработка исключения.
Думаю с этим более или менее разобрались. В примере будут и примеры исключений.
Перейдем к Thread. Это класс потоков (нитей). Многопоточность мы будем использовать в графическом интерфейсе, так что запоминаем.
Самые важные методы класса Thread — start (запускает новый поток параллельно выполнению программы), run (запускает новый поток, при этом программа ждет его завершения), stop (останавливает поток) и sleep(замораживает поток на указанное время (в миллисекундах))
Начиная с этой части вся информация по коду будет находиться внутри.
package hello; import java.io.BufferedWriter; import java.io.File; import java.io.FileWriter; import java.io.IOException; import java.util.Scanner; import java.util.logging.Level; import java.util.logging.Logger; public class Hello { private static Scanner scan;// эта переменная перенесена сюда, чтоб она была доступна из потока public static void main(String[] args){ scan=new Scanner(System.in); Thread t=new Thread(new Runnable() { @Override public void run() { try { Thread.sleep(1000);// делаем задержку выполнения потока на 1 секунду } catch (InterruptedException ex) { Logger.getLogger(Hello.class.getName()).log(Level.SEVERE, null, ex); } String File=scan.nextLine(); String Text=scan.nextLine(); try { saveToFile(File, Text);// Функция с прописанным throw } catch (IOException ex) { System.out.println("Ошибка");// вывод сообщения об ошибке Logger.getLogger(Hello.class.getName()).log(Level.SEVERE, null, ex); } System.out.println("Поток закончился"); } }); t.start(); System.out.println("Начало");// это сообщение будет первым, т.к. в потоке задержка } private static void saveToFile(String File, String Text) throws IOException{ BufferedWriter bw=new BufferedWriter(new FileWriter(new File(File))); bw.write(Text); bw.close(); } }
Рейтинг:
-1
Просмотры: 1175Комментарии (0) »