Java小白进阶笔记(6)-异常
继续学习偏头痛杨的博客----偏头痛杨的Java入门教学系列之异常篇
详细内容见链接中的博客,下面是简单的学习笔记和偏头痛杨留下的作业解答。
异常的分类
检查性异常(checked exception)
编译时出现的异常
unchecked exc
可以通过编译,但运行时会出现异常。如:ArrayIndexOutOfBoundsException。
错误(error)
错误不是异常。
Java虚拟机运行错误(Virtual MachineError),
类定义错误(NoClassDefFoundError),
内存溢出错误(OutOfMemoryError)等
异常的层次结构
图:见原文
Throwable
有两个重要的子类:Exception(异常)和 Error(错误)
Exception
有两个重要子类:IOException和RuntimeException
Error
略
异常处理
过程
抛出->捕获->处理
处理异常的两种方式
自行处理:
将可能引发异常的语句封在try语句块内,处理异常的相应语句封入catch块内
回避处理:
在方法声明中包含throws子句,通知潜在调用者,如果有异常,必须由调用者处理
throws,throw,finally
- throws:写在方法的声明之后,用于抛出异常给调用者
- throw:引发明确异常
- finally:放在try...catch语句之后,不管异常是否被捕获都要执行
作业
编写一个方法,入参为一个整型变量。
输入1则抛出空指针异常;
输入2则抛出数组下标越界异常;
输入3则抛出IO异常;
否则不抛异常,输出:"今天没有异常耶"。
不管是否有异常,都要输出:"方法正在呗调用"
异常需要在调用者的方法处理,
空指针异常则输出"给jack打电话"
IO指针异常则输出"给sean打电话"
数组下标越界异常则输出"给clarck打电话"
解答
直接看代码吧!
import java.io.IOException; import java.util.Scanner; public class TestFunction { public static void main(String [] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); sc.close(); try{ function(n); }catch(NullPointerException e) { System.out.println("给jack打电话"); }catch(ArrayIndexOutOfBoundsException e) { System.out.println("给Sean打电话"); }catch(IOException e) { System.out.println("给clarck打电话"); }finally { System.out.println("方法正在被调用"); } } public static void function(int n) throws NullPointerException,ArrayIndexOutOfBoundsException,IOException { if(n==1) { throw new NullPointerException(); } else if(n==2) { throw new ArrayIndexOutOfBoundsException(); } else if(n==3) { throw new IOException(); } else { System.out.println("今天没有异常耶"); } } }
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
2018-05-18 第十二天
ä¸ã Eclipse日食 是IBM使用纯java开发的,一个主要用于java应用程序开发的,一个集成开发环境(IDE)。可以帮助我们快速的开发java 项目。 bug:虫子。在软件行业中的bug 就是程序中的错误。 debug:调试错误、解决错误的过程。 äºã 面向对象 还有两天就是520了,快给自己new 一个对象吧 = =! 面向对象和面向过程不是矛盾的。面向对象的过程中包含了面向过程。 ï¼ä¸ï¼ 面向过程: 面向过程的软件的开发的基本思路: 将一问题按照过程,划分成若干个功能模块。然后按照过程的要求,将几个功能模块代码顺序执行。 可以大概的理解为是一个线性的执行的过程。 面向过程开发的问题: 1:软件规模越来越大,问题越来越复杂,那么使用线性的思维模式,去解决难度越来越大,复杂程度越来越高。后期维护也比较困难。 2:代码的复用性很差。 ï¼äºï¼ 面向对象: 需求:大象装冰箱 面向过程的方式: 1:把冰箱门打开 2:把大象装进去 3:把冰箱门带上 面向对象的编程思维: 1:分析:分析需求中包含了几个对象? 结果:2个对象 大象 和 ...
- 下一篇
jQuery学习笔记--效果,操作html元素,遍历DOM树
参考W3school: http://www.w3school.com.cn/jquery/jquery_hide_show.asp jQuery效果: 隐藏: 基础语句: $(selector).hide(speed,callback); 可选的 speed 参数规定隐藏/显示的速度,可以取以下值:”slow”、”fast” 或毫秒。 可选的 callback 参数是隐藏或显示完成后所执行的函数名称。 实现:单击p标签的文字 文字消失 <script> $(document).ready(function(){ $("p").click(function(){ $(this).hide(); }); }); </script> 实现:单击button按钮 文字在2秒内消失 <script type="text/javascript"> $(document).ready(function(){ $("button").click(function(){ $("p").hide(2000); }); }); </script> 实现:单击...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Red5直播服务器,属于Java语言的直播服务器
- Docker安装Oracle12C,快速搭建Oracle学习环境
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- CentOS8安装Docker,最新的服务器搭配容器使用
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- CentOS关闭SELinux安全模块
- CentOS7设置SWAP分区,小内存服务器的救世主