`
l4432848
  • 浏览: 254220 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Java基础——异常

    博客分类:
  • java
 
阅读更多

声明:本栏目所使用的素材都是凯哥学堂VIP学员所写,学员有权匿名,对文章有最终解释权;凯哥学堂旨在促进VIP学员互相学习的基础上公开笔记。

异常处理:

可以挖很多个陷阱,但是不要都是一样的陷阱,要不然没有意义。
一旦发生异常,产生一个异常对象,立即终止代码向下执行,寻找陷进处理异常,如果当前陷阱无法接受异常对象,就会向外抛,一直抛给能处理异常的陷阱。

异常捕获:
异常捕获是一种特殊的处理机制,跟if else不一样。If else是通过一个条件判断来进行分支,异常一旦发生就终止代码运行,马上去找捕获区(处理者)进行相应的处理。

捕获语法: try{
//可能会出错的代码
}catch(陷阱类型){
处理
}

例题1:打印结果为1、2、3、5、6.
S.toString();出现了异常直接跳到了NullPointerException e 陷阱中,把4号的代码终止了,因为s.toString 出现了出错直接抛给了陷阱。进入陷阱后进行了相应的处理,代码再往下走。

image

例题2:
打印结果:1、2、5、7。
执行过程:从main方法开始,打印了“1”、“2”,发生了一个不能被0整除的错误,抛给了ArithmeticException e陷阱,打印了“5”、“7”。

image

例题3:
打印结果:1、2、1、3、6、7.
执行过程:先打印1,然后打印2, 1/1=1, 打印1,接着打印3,最后申请一个数组,数组长度为1,发生了数组下标越界错误,走进了(ArrayIndexOutOfBoundsException e)陷阱,走进陷进后打印了6,最后打印了7。

image

例题4:
打印结果:1、2、3。
执行过程:先打印了1、2、3,然后出现了下标越界错误,代码中并没有挖下标越界错误的陷阱,它是无法执行的。Java的原理:异常一旦抛出,就会疯狂的找对应异常的陷阱,找不着就往外面找,终止外面的代码执行,外面在找不着再往最外面找。会导致一直终止代码。

image

image

例题5:先执行main方法,调用了m2(); ,m2调用了m1,m1调用了m,m出现了下标越界异常,m方法中没有处理数组越界的陷阱,所以无法处理数组越界异常。无法处理就向外抛,抛给了被调用者,m1没有处理者,又抛给了m2,m2又抛给了main方法,main方法中又相应的陷阱处理,跳到了数组越界处理的陷阱中,往下执行。(如果main方法没有相应的陷阱话,就会往外抛)

image

通用陷阱:
抛异常都是对象形式,对象找陷阱时候的是使用instanceof 能通过的就可以。
通用陷阱就是写他们的父类,用父类做陷阱类型,可以接受更多异常。

异常家族:Object--------Throwable
1.Exepion(程序抛出的异常) :RuntimeException(运行时异常)
2.Error (虚拟机抛出的错误)

Exepion:是一个比较严重的错误,要不然就写个try()catch{}伺候着,不然就向外抛出。 RuntimeException:这种错误是操作时的错误,这种错误一般认为,技术好有经验的话都可以避免。所以没有必要强制写try()catch{}。

通用陷阱要挖在最后,不然就独有一个。(要不然没有意义)

image

finally:最终执行块。
写在最后。
出现异常,或者不出现异常都会执行finally最终执行块。

写法:
1.try()[
}finally{
}

2.try{
}catch(){
}catch(){
}finally{
}

例题:
打印结果:1、2、4。
执行过程:先执行打印1、2,然后出现不能被0整除异常,往外抛,往外抛之前要执行最终执行块。

image

例题2:
打印结果:
执行过程:先执行打印1、2,然后生发一个数组越界错误,执行4,然后抛到6.因为try 的结构结束了,里面的代码执行完了。然后异常抛给了6,打印了6,接着打印7、8.

image

0
0
分享到:
评论

相关推荐

    java基础——————试题库

    这份“java基础——————试题库”资源旨在帮助学习者系统地复习和深入理解Java的基础知识,确保他们能够全方位地掌握这一强大的编程工具。下面将详细阐述Java的基础知识点。 1. **Java简介** - Java是由Sun ...

    清华大学JAVA教程——比较基础

    【清华大学JAVA教程——比较基础】是一套专门为初学者设计的JAVA编程学习资源,旨在帮助学习者从零开始逐步掌握这门流行的编程语言。这套教程以其深入浅出的方式,深受广大编程爱好者欢迎,尤其适合对JAVA感兴趣但...

    实战Java虚拟机——JVM故障诊断与性能优化.pdf

    通过阅读《实战Java虚拟机——JVM故障诊断与性能优化》,读者不仅可以学习到JVM的基础知识,还能掌握如何在实际工作中诊断问题和优化性能,从而提升Java应用程序的运行效率和稳定性。这本书是Java开发者深入理解JVM...

    java基础——数组及其应用(csdn)————程序.pdf

    Java中的数组是一种基础且重要的数据结构,它允许存储相同类型的数据集合,并且这些数据按照一定的顺序排列。数组的声明和创建是使用Java编程时的常见操作。声明数组变量的语法有两种形式,例如: ```java dataType...

    java基础——Scanner的基础和进阶(csdn)————程序.pdf

    Java中的`Scanner`类是Java.util包下的一个类,它提供了从各种源(如系统标准输入、文件或字符串)读取基本类型数据和字符串的能力。`Scanner`对象主要用于获取用户的输入,尤其在控制台应用程序中非常常见。创建`...

    尚硅谷Java基础实战——Bank项目下载地址

    【Java基础实战——Bank项目详解】 Java作为一款广泛使用的编程语言,其强大的功能和灵活性使其在软件开发领域占据着重要地位。"尚硅谷Java基础实战——Bank项目"是一个旨在帮助初学者深入理解Java编程概念并实践...

    java基础——方法的重写、多态+instanceof(csdn)————程序.pdf

    在Java编程语言中,方法的重写和多态是面向对象设计的重要概念,它们使得代码更加灵活和可扩展。下面将详细阐述这两个概念及其应用场景。 首先,方法的重写(Override)是指在一个子类中定义与父类相同名称和参数...

    java课件——全面介绍java知识

    这个"java课件——全面介绍java知识"提供了一套完整的Java学习资源,旨在帮助初学者和进阶者深入理解和掌握Java编程技术。 首先,让我们从基础开始。Java的核心概念包括类、对象、封装、继承、多态。类是对象的模板...

    《Java Web开发基础——从Servlet到JSP》源代码v1.0

    《Java Web开发基础——从Servlet到JSP》是一本深入探讨Java Web开发的教程,主要涵盖了从基础的Servlet到高级的JSP技术。这个压缩包包含的源代码是该书教学内容的实践部分,旨在帮助读者更好地理解和应用所学知识。...

    java实例——闹钟——看看吧 总有思路的

    总的来说,通过这个“java实例——闹钟”,我们可以深入了解Java的定时器机制,这对于开发各种需要定时触发功能的应用(如定时备份、自动检查更新等)非常有用。不断练习和理解这些基础知识,将有助于提升你在Java...

    java面试——深圳-腾讯-Java高级.zip

    首先,Java基础是任何面试的基础。确保你对变量、数据类型、控制流(如if语句、for循环、while循环)、类与对象、封装、继承、多态等有扎实的理解。同时,熟悉异常处理机制,包括try-catch-finally块和不同类型的...

    黑马程序员入学Java知识——精华总结

    1. **Java基础知识**:Java是一种面向对象的语言,它的基础包括语法、数据类型(如基本类型和引用类型)、运算符、控制结构(如if语句、switch语句、for循环、while循环)以及方法的定义和调用。 2. **类与对象**:...

    个人学习的java笔记——思维导图

    4. **异常处理**:Java提供了异常处理机制,通过try-catch-finally语句块来捕获和处理运行时错误,确保程序的健壮性。 5. **集合框架**:Java集合框架包括List、Set、Map等接口以及ArrayList、HashSet、HashMap等...

    java面试——深圳-银盛支付-Java中级.zip

    这份"java面试——深圳-银盛支付-Java中级.zip"压缩包文件很可能包含了针对Java中级开发者的一系列面试问题和解答,旨在帮助求职者提升自己的技能,并在面试中脱颖而出。下面,我们将深入探讨一些可能涵盖的Java中级...

    Java基础知识——Java入门与加深

    本文将深入探讨Java的基础知识,旨在帮助初学者快速入门并进一步加深对Java的理解。 首先,我们来了解一下Java的核心概念。Java是基于C++语言发展而来的,但去除了指针等复杂特性,使代码更加安全。它的“Write ...

    Java面试题必备——Java基础知识部分汇

    Java面试题必备——Java基础知识部分汇总 本文总结了Java基础知识部分的重要知识点,涵盖了Java面试中常见的问题,包括作用域、String类、int和Integer的区别、String和StringBuffer的区别、运行时异常与一般异常的...

    java语言——老师随机点名系统

    1. **Java基础**: - **类与对象**:Java是一种面向对象的编程语言,系统设计时会涉及到多个类,如`Student`(学生)、`Classroom`(班级)和`RandomNamePicker`(随机点名器)等。 - **封装**:通过定义私有成员...

    java面试——南京-软通动力-Java中级.zip

    在Java中级面试中,软通动力作为一家知名的IT服务企业,通常会关注应聘者对Java基础知识、编程实践、设计模式以及并发处理等多方面的能力。这份资料“java面试——南京-软通动力-Java中级.zip”包含了一份详细的PDF...

    java程序——小鸟过杆小游戏

    综上所述,"java程序——小鸟过杆小游戏"涵盖了Java编程的基础知识,包括面向对象编程、GUI设计、事件处理、动画制作、游戏逻辑等多个方面,对于初学者来说,是一个很好的实践项目,可以帮助他们巩固理论知识,提升...

    实战Java虚拟机——JVM故障诊断与性能优化

    《实战Java虚拟机——JVM故障诊断与性能优化》是一本深入探讨Java开发人员和运维人员必备技能的书籍。本书作者葛一鸣以其丰富的实战经验,详细阐述了JVM(Java Virtual Machine)的工作原理,以及如何有效地进行故障...

Global site tag (gtag.js) - Google Analytics