异常和错误的区别
Object |-- Throwable
|--Error:是严重错误
|--Expection:编译异常
|--RuntimeException 运行异常
异常的分类
Expection:编译期异常 受检异常.
1.要么try-catch处理.
2.要么throws抛出.
RunTimeExpection:运行异常 非受检异常.
1.可以try-catch处理.
2.也可以throws抛出.
3.还可以不理会,默认也会throws抛出.
Throwable当中的常用方法:
获取细节信息:getMessage().
获取概要信息:toString().
打印栈信息:printStackTrace()红字儿.
虚拟机处理异常的方式
1.提示异常(System.err)显示异常信息.
2.停掉程序.
常见的运行期异常
ArraysIndexOutOfBoundsExpection
StringIndexOutOfBoundsException
IndexOutOfBoundsException
NullPointerException
ArithmeticException
ClassCastException
NoSuchElementException
ConcurrentModificationException
UnsupportedOperationException
IllegalArgumentException
FileNotFoundException
IOException
RuntimeException
使用try...catch关键字处理异常
try{
可能出现异常的代码
} catch (异常代码 e){
处理异常代码
}
try-catch-finally语句:
try{
} catch (A a) {
} finally {
// 一定会被执行的语句
}
注意事项:
1. 可以一个try后面多个catch语句,但是如果有继承,必须子类异常在前,父类异常在后。
try {
} catch (A a) {
} catch (B b) {
}
2. 也可以一个catch语句中间多种异常,但是互相之间不能存在继承关系。
try {
} catch (A | B | C ex) {
}
3. 可以是try-catch,也可以try-catch-finally,还可以try-finally。但是不能只有try或者没有try。
4. 覆盖重写方法的时候,必须保证子类方法的throws异常范围【小于等于】父类范围。:
使用throws关键字处理异常
throw关键字:
含义:主动抛出一个异常
格式:throw new 异常类(参数)
异常类 异常对象名 = new 异常类(参数);
throw 异常对象名;
throws关键字:
含义:是一种修饰符,代表方法中出现了异常我不处理,谁调用谁处理.
格式:
修饰符 返回值类型 方法名称(参数类型 参数名称) throws 异常 A, 异常 B{...
}
自定义异常类
1.定义一个类,继承一个已经存在的异常类.
2.编写一个无参构造方法.
3.编写一个String参数的构造方法,并调用super(String).
处理自定义异常类
和处理普通异常一样
可以用try-catch捕获
或者throws抛出
进程线程的概念
进程:操作系统中正在运行的程序.
线程:进程之内多任务的执行单位.
并发与并行的区别
并发:一个时间段内"同时"运行,可能穿插.
并行:每一个时间点上全都是同时运行.
java只能保证并发
开启新线程
1.定义一个类,继承Tread类.
2.覆盖重写public vloid run(){ }方法,用来指定线程运行内容.
3.调用Start方法启动进程.
注意:
不能自己调用run方法,否则没有多线程效果.