运行的异常和一般异常的区别
异常分为两类:runtime exception(运行时异常)和checked exception(一般异常)。 一般的异常比如ioException,sqlException,编译器会强制我们写try catch。
而runtimeException是虚拟机掌管的。如果出现异常会一直往上抛,直到遇到处理代码。如果没有处理代码,到最上层。如果是多线程就通过Thread.run抛出,单线程由main抛出。抛出后线程就退出,主程序抛出那么程序退出。
error和exception的区别
error表示的是系统级的错误。是java运行环境中的内部错误或者硬件问题。内存资源不足等。对于这种错误,程序基本无能为力,除了退出运
行外别无选择,它是由Java虚拟机抛出的。
exception是程序级的错误,是因为应用程序有瑕疵导致。
几种常见的runtimeException
NullPointerException、ArrayIndexOutOfBoundsException、ClassCastException(子类引用指向父类对象)。StringIndexOutOfBoundsException WebServiceException,ArithmeticException(整数除0时发生)
throws,throw,try catch,finally分别指:
throw是抛出异常,在方法体里面写。直接指明抛出哪个异常。
throws是出现在方法头,表示是出现某种异常的可能性,也就是说如果出现这种异常就抛出。
try catch是自己处理异常
finally是无论是否有异常都会处理,除非在finally的前面有system.out.exit();这时候程序直接退出了。