福州阿里巴巴网站建设,wordpress菜单.html,哪些网站可以seo,wordpress git升级目录
1. 异常的概念与体系结构
1.1 异常的概念
1. 算术异常
2. 数组越界异常
3. 空指针异常
1.2 异常的分类
1. 编译时异常
2. 运行时异常
2.1 异常的处理 防御式编程
2.2 异常的捕获
2.3.1 异常声明throws
2.3.2 try-catch捕获并处理
2.3.3 finally
总结 1. 异常…目录
1. 异常的概念与体系结构
1.1 异常的概念
1. 算术异常
2. 数组越界异常
3. 空指针异常
1.2 异常的分类
1. 编译时异常
2. 运行时异常
2.1 异常的处理 防御式编程
2.2 异常的捕获
2.3.1 异常声明throws
2.3.2 try-catch捕获并处理
2.3.3 finally
总结 1. 异常的概念与体系结构
1.1 异常的概念
在Java中将程序执行过程中发生的不正常行为称为异常
1. 算术异常
System.out.println(10 / 0);
// 执行结果
Exception in thread main java.lang.ArithmeticException: / by zero
2. 数组越界异常
int[] arr {1, 2, 3};
System.out.println(arr[100]);
// 执行结果
Exception in thread main java.lang.ArrayIndexOutOfBoundsException: 100
3. 空指针异常
int[] arr null;
System.out.println(arr.length);
// 执行结果
Exception in thread main java.lang.NullPointerException 1.2 异常的分类
1. 编译时异常
public class Person {
private String name;
private String gender;
int age;
// 想要让该类支持深拷贝覆写Object类的clone方法即可
Override
public Person clone() {
return (Person)super.clone();
}
}
编译时报错
Error:(17, 35) java: 未报告的异常错误java.lang.CloneNotSupportedException; 必须对其进行捕获或声明以便抛出
2. 运行时异常 RunTimeException 以及其子类对应的异常都称为运行时异常 。比如 NullPointerException 、 ArrayIndexOutOfBoundsException 、 ArithmeticException 。 2.1 异常的处理 防御式编程 1. LBYL : Look Before You Leap. 在操作之前就做充分的检查 . 即 事前防御型 boolean ret false;
ret 登陆游戏();
if (!ret) {
处理登陆游戏错误;
return;
}
ret 开始匹配();
if (!ret) {
处理匹配错误;
return;
}
ret 游戏确认();
if (!ret) {
处理游戏确认错误;
return;
}
ret 选择英雄();
if (!ret) {
处理选择英雄错误;
return;
}
ret 载入游戏画面();
if (!ret) {
处理载入游戏错误;
return;
} 2. EAFP : Its Easier to Ask Forgiveness than Permission. 事后获取原谅比事前获取许可更容易 . 也就是先操 作 , 遇到问题再处理 . 即 事后认错型 try {
登陆游戏();
开始匹配();
游戏确认();
选择英雄();
载入游戏画面();
...
} catch (登陆游戏异常) {
处理登陆游戏异常;
} catch (开始匹配异常) {
处理开始匹配异常;
} catch (游戏确认异常) {
处理游戏确认异常;
} catch (选择英雄异常) {
处理选择英雄异常;
} catch (载入游戏画面异常) {
处理载入游戏画面异常;
} 2.2 异常的捕获
2.3.1 异常声明throws 处在方法声明时参数列表之后当方法中抛出编译时异常用户不想处理该异常此时就可以借助 throws 将异常抛 给方法的调用者来处理。即 当前方法不处理异常提醒方法的调用者处理异常 。 语法格式
修饰符 返回值类型 方法名(参数列表) throws 异常类型1异常类型2...{
}
2.3.2 try-catch捕获并处理
语法格式
try{
// 将可能出现异常的代码放在这里
}catch(要捕获的异常类型 e){
// 如果try中的代码抛出异常了此处catch捕获时异常类型与try中抛出的异常类型一致时或者是try中抛出异常的基类
时就会被捕获到
// 对异常就可以正常处理处理完成后跳出try-catch结构继续执行后序代码
}[catch(异常类型 e){
// 对异常进行处理
}finally{
// 此处代码一定会被执行到
}]
// 后序代码
// 当异常被捕获到时异常就被处理了这里的后序代码一定会执行
// 如果捕获了由于捕获时类型不对那就没有捕获到这里的代码就不会被执行
注意
1. []中表示可选项可以添加也可以不用添加
2. try中的代码可能会抛出异常也可能不会
2.3.3 finally
语法格式
try{
// 可能会发生异常的代码
}catch(异常类型 e){
// 对捕获到的异常进行处理
}finally{
// 此处的语句无论是否发生异常都会被执行到
}
// 如果没有抛出异常或者异常被捕获处理了这里的代码也会执行 注意 finally 中的代码一定会执行的一般在 finally 中进行一些资源清理的扫尾工作 。 总结
以上是一些常见的异常信息针对不同的异常要根据其特点选择怎么样去修改会事半功 希望这篇博客能帮助正在学习的读者提供一点思路和方法