Python 官方文档:入门教程 => 点击学习
目录一、异常体系结构1.什么是异常2.异常的体系结构二、异常处理throw 与 throws三、自定义异常运行时异常编译时异常总结一、异常体系结构 1.什么是异常 在java程序运行
在java程序运行过程中,发生了一些意料之外的情况就是异常。在java中异常一颗分为两大类:
(错误)Error 和 (异常)Exception。
Throwable
Error Exception
RutimeException
编译时异常
说明: RutimeException
和一些编译时异常继承了Exception
,Exception
和Error
继承了Throwable
。
运行时异常(RutimeException
)在代码中我们往往不需要去捕获它,而是通过处理代码的逻辑来规避运行时异常。常见的5种运行时异常:
ClassCastException
(类转换异常)ArrayIndexOutOfBoundsException
(数组越界异常)NullPointerException
(空指针)ArrayStoreException
(数据存储异常,操作数组时类型不一致)NumberFORMatException
数字格式化异常
public class Demo{
public void test(){
//此代码声明这里会抛出一个运行时异常
throw new RutimeException();
}
}
public class DemoTest{
public static void main(String[] args){
Demo demo = new Demo()
demo.test();
}
}
从上述代码种可以看出,运行时异常产生时,代码可以正常的编译与运行,但是运行结果会抛出一个运行时异常。
说明:运行时异常会向上传播。
当异常发生时,我们需要对其进行处理,处理异常有两种方式:
一种使用try…catch…finally进行捕获;
另一种使用throws的方式进行抛出;
try…catch…finally
语法
try {
// 可能发生异常的代码块
} catch () {
// 捕获到异常后的处理代码块
} finally {
// 不管是否会发生异常,此代码块都会被执行
}
示例:
public class Demo1{
public static void main(String[] args){
String[] strs = {"张三","李四","王五"};
try {
System.out.println("-------");
System.out.println(strs[3]); // 此处会发生异常,当异常发生后,后面的代码都不会被执行到
for (String str : strs) {
System.out.println(str);
}
} catch (ArrayIndexOutOfBoundsException e) {
System.out.println("++++++++++");
} catch (Exception e) {
System.out.println("++++++++++");
}finally{
System.out.println("--------------");
}
}
}
说明:在try…catch…语句中,try语句中产生异常的代码后面的代码不会被执行,产生异常后直接到了catch语句块中。catch语句块可以写多个,catch语句分支是从上到下依次找对应类型的,但是注意catch捕获的异常类型中父类型必须写在子类型的后面。
finally语句块是无论异常是否产生都会执行的。常用与资源的释放。
示例:
public class Demo{
public void test() throws Exception{
//此代码声明这里会抛出一个异常
throw new Exception();
}
}
public class DemoTest{
public static void main(String[] args){
Demo demo = new Demo()
try {
demo.test();
}catch (Exception e) {
System.out.println("++++++++++");
}finally{
System.out.println("--------------");
}
}
}
继承 RutimeException
示例:
public class MyRutimeException extends RutimeException {
public MyRutimeException(String message){
super(message);
}
}
继承Exception
示例:
public class MyException extends Exception {
public MyException(String message){
super(message);
}
}
本篇文章就到这里了,希望对你有所帮助,也希望您能够多多关注编程网的更多内容!
--结束END--
本文标题: 新手了解java 异常处理基础知识
本文链接: https://lsjlt.com/news/129862.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
2024-03-01
2024-03-01
2024-03-01
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0