网站微信认证费用多少,黄骅港属于哪个市,吴苏南网站建设,怎样自己做企业的网站目录
一#xff1a;异常的概念和体系结构
1.概念
2.体系结构
3.异常分类
二#xff1a;异常的处理
1.防御式编程
2.异常的抛出
3.异常的捕获
4.异常的处理流程
三#xff1a;自定义异常 一#xff1a;异常的概念和体系结构
1.概念
#xff08;1#xff09;在…目录
一异常的概念和体系结构
1.概念
2.体系结构
3.异常分类
二异常的处理
1.防御式编程
2.异常的抛出
3.异常的捕获
4.异常的处理流程
三自定义异常 一异常的概念和体系结构
1.概念
1在Java中在程序执行过程中发生的不正常的行为称为异常
2常见的的异常 2.体系结构 3.异常分类
1编译时异常受查异常 编译时报错
2运行时异常非受查异常 比如NullPointerException、ArrayIndexOutOfBoundsException、ArithmeticException
注意编译时出现的语法错误不能称为异常
二异常的处理
1.防御式编程
1LBYL:事前防御型if
2EAFP:事后认错型try、catch、finally
2.异常的抛出
1在Java中异常处理主要的5个关键字throw、try、catch、final、throws
2抛出异常throw必须写在方法体里面异常一旦抛出后面的代码就不会执行 throw new xxxException(异常产生的原因) 3.异常的捕获
1异常声明throws通过throws处理编译时异常
【这个详细代码在后面自定义类型】 2try-catch
throws对异常并没有真正处理而是将异常报告给抛出异常方法的调用者由调用者处理。如果真正要对异常进行处理就需要try-catch 语法格式 try{ //将可能出现异常的代码放在这里 }catch(要捕获的类型 e ){ //如果try中的代码抛出异常了此处的catch捕获时异常类型与try中跑出的类型一致或者是try中抛出的异常的父类时就会被捕获到 //对异常就可以正常处理处理完毕后跳出try-catch结构继续执行后续代码 } catch(要捕获的类型 e ){ //try中可能抛出多个不同的异常对象则必须使用多个catch来捕获 }finally{ //此处代码一定会执行 } //后续代码 //当异常被捕获到了异常就被处理了这里的后续代码一定会被执行到 //如果捕获了但是捕获类型不同就为白捕获这里的代码也不会执行到 4.异常的处理流程
1程序先执行try中的代码
2如果try中的代码出现异常就会结束try中的代码看catch中的异常类型是否匹配
3如果找到匹配的异常类型就会执行catch中的代码
4如果没有找到匹配的异常类型就会向上传递到上层调用者
5无论是否找到匹配的异常类型finally中的代码都会被执行到在该方法结束之前执行
6如果上层调用者没有处理的了异常就会继续向上传递
7一直到main方法也没有合适的代码处理异常就会交给JVM来进行处理此时程序就会异常终止 三自定义异常
1.前提 Java中虽然内置了丰富的异常类但是并不能完全表示实际开发中遇到的一种异常此时就需要维护复合实际情况的异常结构
2.具体方式
1自定义异常类然后继承自Exception或RunTimeException
2实现一个带有String类型参数的构造方法参数含义出现异常的的原因
3
public class PasswordException extends Exception{public PasswordException(String message){super(message);}
}public class NameException extends Exception{public NameException(String message){super(message);}
}public class Login {private String nameadmin;private String password1234;public static void loginInfo(String name,String password) throws NameException, PasswordException {if(!name.equals(name)){throw new NameException(用户名错误);}if(!password.equals(password)){throw new PasswordException(用户名错误);}System.out.println(登陆成功);}public static void main(String[] args) {try {loginInfo(amdin,1234);} catch (NameException e) {throw new RuntimeException(e);} catch (PasswordException e) {throw new RuntimeException(e);}}
}3.注意事项 继承自Exception的异常默认是受查异常继承自RunTimeException的异常默认是非受查异常