异常处理
一、异常分为ERROR(不可处理异常)和Exception(可处理异常):Throwable->ERROR,Exception
而Exception分有编译期异常和运行期异常。
1.运行期异常
1).NullPointerException 空值异常
2).ArithmeticException 除以0的异常
3).InputMismatchException 输入的异常
4).ArrayIndexOutOfBoundsException 数组下标越界异常
5)InterruptedException 中断异常
2.编译期异常
1).FileNotFoundException 文件未找到异常
二、
try{
//一条或多条可能会发生异常的代码块
}catch( ArrayIndexOutOfBoundException e)
{
// e.printStackTrace();
System.out.println("下标越界");
}catch(ArithmeticException e)
{
System.out.println("除零错误");
}
1.一个try对应一个或多个catch,关心的异常要具体catch一下,不关心的不要细化分异常,不然显得很乱
不关心的笼统写一个公共异常即可:catch(Exception e){},即用父类接受,体现了向上造型(向上造型:基类的引用派生类的对象)
2. 一个catch到,后面的catch就不继续抓了,也就是try中前面的代码已经被抓住了异常,后面的语句就不继续执行了。
3.finally{}:catch完后或者没有catch都必须执行的语句(无论是否发生异常,都会被执行的语句 ),一个try对应一个finally。
可以应用到文件中,即是否文件执行任务是否失败,都可以将文件关闭。
4.try块return之前调用finally块,从finally返回。也就是无论发生什么情况,finally必定会被执行。
三、throws:扔异常类
public void fun() throws Exception{
int a=10/0;}
public static void main(Stirng[]args){
try{
fun();
}catch(Exception e){
e.printStackTrace();
}
}
四、throw :扔异常对象
public static void fun(int[] arr){
if(arr == null)
throw new NullPointerException();
}
五、自定义异常
class MyException extends Exception()
六、退出
1.return
2.System.exit() : 程序从main主函数退出,显示()中数字。//系统默认正常退出返回0,异常返回负数。
接口
- 接口:常量public static final
- 接口没有构造方法,不能实例化
- 接口中只能有抽象方法,即不能有函数体。
- 类和类是extends继承的关系。
- 类和接口是implements实现接口中的所有抽象方法。
- 类实现了一个接口,必须全部实现接口中的抽象方法 。
- 接口和接口:继承关系。接口可以多实现class C implements A,B,D,此时类C必须实现所有接口的抽象方法。
- Thread.sleep(10000):进程睡10秒