📄 8ï¼å¼å¸¸ï¼~
字号:
JAVA 异常机制:(运行时的问题)1 将各种异常定义成不同的 类:2 异常处理代码和正常代码分开:try{正常代码} catch(){异常处理代码}3 异常处理方式很灵活 catch{}也称异常处理器当有多个异常时,必须先得扑获子异常,然后再处理父异常 例如: try{} catch(IOException e) {} catch(Exception e) {} 注意:异常只处理一次。也就是说,假如 发生了IOException, 马上执行异常处理代码。然后再 利用 instanceof 去判断 前面的异常对象 是否是后面异常类的实例,如果是,则不再执行;否则执行 1) try{} finally{} //正确 2) try{} finally{} catch{} //错误 3) try{} catch{} finally{} //正确 finally始终位于最后,可以有0个或者1个 catch 位于try{}后,可以有0或者多个 try{ 。。。。。。。。。 } catch(){ return ; //即使 异常处理有return 语句,finally 语句照样会执行 } finally{ System.out.println(".............."); }异常处理场合: 1)抛出异常的当前方法中 (自行处理) public void m(){ try{} catch(Exception e){....} } 2)调用者 //谁调用谁处理 关键字 throws(方法声明上) 方法中具体语句用 throw public void m()throws Exception { //抛出异常 } public void n() /*throws Exception*/ { //试着处理 m()抛出的异常,如果不处理,继续抛出 try{ m(); }catch(Exception e){ } } public static void main(String[] args) throws Exception { //main 方法抛出异常 给JVM,程序终止 } 3)JVM 虚拟机处理 程序终止Exception: 1)checked exception 需要显示使用 try{}catch(){} 或者 throws 处理 2)unchecked exception 不需要 显示使用 try{}catch(){} 或者 throws 处理 RuntimeException 及其子类属于 unchecked exception 例如:main->a->b->c->d 假如 d 可能异常,则 main,a,b,c 可能都要抛出异常 Throwable | | Error --------------Exception | | RumtimeException------ 其它assert:相当于 有控制开关的 if 语句 用法:java -enableassertions 字节码文件 假如 没带 -enableassertions 虚拟机 就会当作没有 那句 assert 语句 assert 后面的boolean表达式 为假时,才报错(java.lang.AssertionError) assert 在运行时看是否带有参数 -enableassertions,如果有,则其功能和if差不多 如果没有带,则忽略assert语句 (注意:assert 后的boolean表达式语句 跟if后的boolean表达式语句 执行动作相反)JUnit (单元)测试框架 将会用到 assert double temp = ((int)((Math.random()*16 + 24)*100))/100.0;//控制小数点最多两位 下面的 照样能编译 public void m() throws Exception { }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -