
- •Типы join'ов в sql
- •1.Что такое класс Object? Какие в нем есть методы?
- •13. Если у класса-родителя есть метод, объявленный как private, может ли наследник расширить его видимость? а если protected? а сузить видимость?
- •Volatile-
- •2 Потока работают с одним объектом Obj. Один готовит данные, а другой отправляет их. Первый подготовил данные и вызвал:
- •42. Назовите несколько классов из вершины иерархии исключений в Java.
42. Назовите несколько классов из вершины иерархии исключений в Java.
Все исключения, порождаемые от Throwable, можно разбить на три группы. Они определяются тремя базовыми типами: наследникамиThrowable- классами Error и Exception, а также наследником Exception - RuntimeException. 43. Что такое Error? В каком случае используется Error. Приведите пример Error’а.
см. ответ 41 44. Какая конструкция используется в Java для обработки исключений?
Try{} catch(Exception e){} finally{}
Если срабатывает один из блоков catch, то остальные блоки в данной конструкции try-catch выполняться не будут.
Cвойством транзакционности исключения не обладают – действия, произведенные в блоке try до возникновения исключения, не отменяются поcле его возникновения. 45. Возможно ли использование блока try-finally (без catch)?
try может быть в паре с finally, без catch. Работает это точно так же – после выхода из блока try выполняется блок finally. Это может быть полезно, например, в следующей ситуации. При выходе из метода вам надо произвести какое-либо действие. А return в этом методе стоит в нескольких местах. Писать одинаковый код перед каждым return нецелесообразно. Гораздо проще и эффективнее поместить основной код в try, а код, выполняемый при выходе – в finally. 46. Предположим, есть блок try-finally. В блоке try возникло исключение и выполнение переместилось в блок finally. В блоке finallyтоже возникло исключение. Какое из двух исключений “выпадет” из блока try-finally? Что случится со вторым исключением?
Из блока try finally выпадет второе исключение, которое случилось в блоке finally, первое будет утеряно 47. Всегда ли исполняется блок finally?
1.Существуют потоки- Демоны- потоки предоставляющие некие сервисы, работая в фоновом режиме во время выполнения программы,но при этом не являются ее неотъемлеммой частью.Таким образом когда все потоки не демоны завершаются, программа завершает свою работу. В потоках демонах блок finally не выполняеться, они прерываются внезапно.
2.System.exit(0)
3.если в блоке finally произошло исключение и нет обработчика, то оставшийся код в блоке finally может не выполнятся
48. Могли бы вы придумать ситуацию, когда блок finally не будет выполнен?
Да
// Daemon threads don’t run the finally clause
import java.util.concurrent.*;
import static net.mindview.util.Print.*;
class ADaemon implements Runnable {
public void run() {
try {
print("Starting ADaemon");
TimeUnit.SECONDS.sleep(1);
} catch(InterruptedException e) {
print("Exiting via InterruptedException");
} finally {
print("This should always run?");
}
}
}
public class DaemonsDontRunFinally {
public static void main(String[] args) throws Exception {
Thread t = new Thread(new ADaemon());
t.setDaemon(true);
t.start();
}
} /* Output:
Starting ADaemon
*///:~ 49. Предположим, есть метод, который может выбросить IOException и FileNotFoundException в какой последовательности должныидти блоки catch? Сколько блоков catch будет выполнено?
Если срабатывает один из блоков catch, то остальные блоки в данной конструкции try-catchвыполняться не будут.Блоки должны идти от наследника к родителюто есть:
Try{}
Catch(FileNotFoundException e){}
Catch(IOException e){}