网站建设思维导图,中国新闻社官方网站,想学网站建设 如何开始,河北营销型网站方案一、java中的异常继承体系及常见运行时异常 Throwable#xff1a;类是所有异常或错误的超类#xff0c;它有两个子类#xff1a;Error和Exception#xff0c;分别表示错误和异常。其中异常Exception分为运行时异常#xff08;RuntimeException#xff09;和编译时异常。 …一、java中的异常继承体系及常见运行时异常 Throwable类是所有异常或错误的超类它有两个子类Error和Exception分别表示错误和异常。其中异常Exception分为运行时异常RuntimeException和编译时异常。 Error:一般是指java虚拟机相关的问题如系统崩溃、虚拟机出错误、动态链接失败等这种错误无法恢复或不可能捕获将导致应用程序中断通常应用程序无法处理这些错误。 Exception分为运行时异常RuntimeException和编译时异常。 Error一般是指java虚拟机相关的问题如系统崩溃、虚拟机出错误动态链接失败等这种错误无法恢复或不可能捕获将导致应用程序中断通常应用程序无法处理这些错误。 Exception异常又分为两种 Exception编译时异常如果异常不处理则代码无法编译。 RuntimeException运行时异常运行时发生无需处理对代码进行修改解决问题。 常见的运行时异常 1、NullPointerException空指针异常调用了未经初始化的对象或者不存在的对象。 2、ClassNotFoundException指定的类不存在这里主要考虑一下类的名称和路径是否正确即可。 3、ArrayIndexOutOfBoundsException数组下标越界异常对数组时操作调用的下标超过了数组的范围。 4、NoSuchMethodException方法不存在错误。当应用试图调用某类的某个方法而该类的定义中没有该方法的定义时抛出该错误。 5、FileNotFoundException文件为找打异常进行IO操作时发个文的文件不存在。 二、异常的解决方式 1、throwsthrows来告知调用程序此方法可能会抛出的异常但是不会处理。调用方法可能会处理这些异常或者同样用throws来将异常给上一级调用方法。throws关键字后可接多个潜在异常类名。 2、try-catchtry-catch块捕获处理异常。在try代码块中包含可能发生异常的代码一旦发生异常则抛出异常对象会进入catch代码块一个try块之后可以有多个catch子句try-catch块也能嵌套。每个catch块必须接收一个且仅有一个代表异常类型的异常对象参数若try中抛出的异常和catch接收的异常类型一致则进入对应的catch代码块。 3、try-catch可以和finally结合使用finally代码块肯定会执行。 三、throw和throws的区别 throw语句用在方法体内表示抛出异常对象由方法体内的语句处理。 throws语句用在方法声明后面表示抛出异常由该方法的调用者来处理。 throws主要是声明这个给方法会抛出这种类型的异常使他的调用者知道要捕获这个异常。 throw是当程序出现某种逻辑错误时主动抛出一个异常实例。 throw与throws的比较 1、throw出现在方法函数头而throw出现在函数体。 2、throws表示出现异常的一种可能性并不一定会发生这些异常throw则是抛出了异常执行throw则一定抛出了某种异常对象。 3、两者都是消极处理异常的方式只是抛出或者可能抛出异常但是不会由函数去处理异常真正的处理异常由函数的上层调用处理。 throws
public static void write() throws FileNotFoundException {
FileInputStream fileInputStreamnew FileInputStream(c);
}
throw
String s abc;
if (s.equals(abc)) {
throw new NumberFormatException();
}
四、常见的异常 NullPointerException 空指针异常 ClassNotFoundException 指定类不存在 NumberFormatException 字符串转换为数字异常 IndexOutOfBoundsException 数组下标越界异常 ClassCastException 数据类型转换异常 FileException 文件未找到异常 NoSuchMethodException 方法不存在异常 IOException IO异常 SocketException Socket异常 五、try-catch-finally中哪个部分可以省略 try-catch-finally 其中 catch 和 finally 都可以被省略但是不能同时省略也就是说有 try 的时候必须后面跟一个 catch 或者 finally。 六、try-catch-finally中如果catch中return了finally还会执行吗 finally一定会执行即使是catch中return了catch中的return会等finally中的代码执行完之后才会执行。 七、final、finally、finalize的区别 final修饰符如果修饰类此类不能被继承修饰方法此方法不能被重写修饰变量变量为常量只能赋值一次。 finally是try{} catch{} finally{} 最后一部分表示不论发生任何情况都会执行finally部分可以省略但如果finally部分存在则一定会执行finally里面的代码。 finalize是Object类的一个方法在垃圾收集器执行的时候会调用被回收对象的此方法