java中的异常处理机制
1、java中的异常处理机制
创建异常对象—–停止当前执行路径——抛出异常对象的引用——–异常处理器处理
2、异常处理机制的好处
异常分隔了两部分代码:
一部分是描述我们想做什么的代码(业务逻辑),另一部分是程序运行出错时执行的代码(异常处理代码)。
3.捕获异常
使用try块,就算方法抛出了异常也不会结束。
Java支持终止模型,这种模型中,将假设错误非常关键,以致于程序无法返回异常发生的地方继续执行。
创建自己的异常类:
finally
无论如何都会被执行,catch(Exception e)
能捕获所有的异常,一般放在最后。
只处理第一个匹配上的catch,之后的不执行。
异常说明属于方法声明的一部分,紧跟在形式参数列表之后。
class SimpleException extends Exception {}
public class Test{
public void f() throws SimpleException{//注意异常的声明
System.out.println("f()");
throw new SimpleException();//抛出异常
}
public static void main(String[] argv) {
Test a = new Test();
try {
a.f();
}catch(SimpleException e) {//匹配异常
System.out.println("Caught it!");
}catch(Exception e) {//不执行
System.out.println("all the exceptions");
}finally {//无论如何都会被执行
System.out.println("finally");
}
}
}
调用Throwable类的printStackTrace()
方法,那么“从异常方法调用处直到异常抛出处”的方法调用序列将被打印出来。如果括号里加上System.out
,将被自动捕获和显示在输出中。如果括号里什么都没有,则信息将被输出到标准错误流。
二十一、二十二章
1.基本概念:
进程:一段可执行的程序。一个进程包含多个线程。
线程:某一顺序的执行流程,可看作进程的一个任务。
并行:多任务同时进行。并发:通过调度使任务交替进行。并行和并发用户体验相同。
2.实现线程类的两种方法:
(1)继承自Tread类重写其run() 方法;
(2)实现Runnable接口并编写run()方法。
3.图形化用户界面:
Swing类库中使用 布局管理器来管理控件在窗口中的布局。
布局管理器的种类:BorderLayout
、FlowLayout
、GridLayout
、GridBagLayout
事件监听机制:Swing类库中,如果想对控件的单击事件进行响应,可以实现接口ActionListener
中的actionPerformed()
方法。
Lambda表达式
1.对容器类中元素进行迭代
List<Integer> a = new ArrayList<Integer>();
Collections.addAll(a, 1,2,3);
a.forEach(x -> System.out.println(x));
2.替代匿名类
interface Contents{
void value();
}
public class Test {
public static void PContents(Contents con) {
con.value();
}
public static void main(String[] argv) {
PContents(()->System.out.println("a"));
}
}
public void oldRunable() {
new Thread(new Runnable() {
@Override
public void run() {
System.out.println("The old runable now is using!");
}
}).start();
}
public void runable() {
new Thread(() -> System.out.println("It's a lambda function!")).start();
}