Java基础 —— 异常
目录
- 异常的概念及分类
- 异常的处理try-catch-finally
- 异常抛出throw(s)
- 自定义异常
异常的概念及分类
- 什么是异常
- 异常是指在程序的运行过程中发生的一些不正常事件。比如:除0溢出、数组下标越界、所要读取的文件不存在。
- 异常导致的后果
- 项目JAVA程序的执行过程中如出现异常事件,可以生成一个异常类对象,该异常对象封装了异常事件的信息,并将其被提交给JAVA运行时系统,这个过程称为抛出异常,不处理的话会直接导致程序直接中断。
- 如何防止程序中断
- 设计良好的程序应该在程序异常发生时提供处理这些异常的方法,使得程序不会因为异常的发生而阻断或产生不可预见的结果。
- 异常的分类
- JAVA异常处理机制
异常的处理try-catch-finally
例如下面这个例子,虽然提示出错,但还是能输出"end"
class Person
{String name;
}public class test {public static void main(String[] args) {Person p = null;//空指针异常try{p.name = "xiaoMing";}finally{System.out.println("end");}}
}
异常捕获:
class Person
{String name;
}public class test {public static void main(String[] args) {Person p = null;//空指针异常try{p.name = "xiaoMing";//或者catch(Exception e)代表捕获所有异常 后面加个e类似int a变量名}catch(java.lang.NullPointerException e){//捕获异常,就是编译器里面提示的具体错误System.out.println("空指针,检查下是否没有初始化");}finally{System.out.println("end");}}
}
异常抛出throw(s)
例子:
class Bar{int age;public Bar(int age){this.age = age;}void check()throws IllegalArgumentException{//throws用于在方法上标识要暴露的异常if (age < 18){throw new IllegalArgumentException("年纪太小");//throw抛出异常}}
}public class test {public static void main(String[] args) {Bar b = new Bar(15);try{b.check();}catch(IllegalArgumentException e){//alt+?快捷键System.out.println(e.getMessage());//输出年纪太小e.printStackTrace(); //输出异常}finally{System.out.println("end");}}}
运行结果:
年纪太小
java.lang.IllegalArgumentException: 年纪太小at Bar.check(test.java:11)at test.main(test.java:21)
end
自定义异常
例子:
class Bar{int age;public Bar(int age){this.age = age;}void check()throws AgeLessThanEighteenException{//throws用于在方法上标识要暴露的异常{if (age < 18){throw new AgeLessThanEighteenException("年纪太小");//throw抛出异常}}
}class AgeLessThanEighteenException extends Exception{private String message;public AgeLessThanEighteenException(String message){this.message = message;}
}public class test {public static void main(String[] args) {Bar b = new Bar(15);try{b.check();}catch(AgeLessThanEighteenException e){//这个属于前面PPT讲的受查异常,必须要进行catch处理System.out.println(e.getMessage());e.printStackTrace(); }finally{System.out.println("end");}}}
结果:
null
AgeLessThanEighteenExceptionat Bar.check(test.java:11)at test.main(test.java:28)
end
Java基础 —— 异常相关推荐
- Java基础-异常(Exception)处理
Java基础-异常(Exception)处理 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.异常的概述 什么是异常?Java代码在运行时期发生的问题就是异常.在Java中,把异 ...
- Java基础-异常-throws Exception-抛声明
Java基础-异常-throws Exception-抛声明 参考文章: (1)Java基础-异常-throws Exception-抛声明 (2)https://www.cnblogs.com/pl ...
- JAVA基础——异常详解
阅读目录 一.异常简介 二.try-catch-finally语句 三.throw和throws关键字 四.java中的异常链 五.结束语 JAVA异常与异常处理详解 回到顶部 一.异常简介 什么是异 ...
- Java基础—异常分类及处理
目录 一.概念 三.异常的处理方式 四.throw 和 throws 的区别: 一.概念 如果某个方法不能按照正常的途径完成任务,就可以通过另一种路径退出方法.在这种情况下会抛出一个封装了错误信息的对 ...
- Java基础 — 异常
异常对象都是派生于Throwable 类的一个实例. 异常层次结构简化示意图: 所有的异常都是由Throwable 继承而来,但在下一层立即分解为两个分支:Error 和 Exception Erro ...
- Java基础---异常---turow和throws
异常 1.Throwable:可抛出的,是异常的顶层父类,其他的异常或者错误都是Throwable的子类类型,只有是Throwable的体系类型,才可以使用异常的处理机制 2.Error:错误,是Th ...
- 黑马程序员--java基础--异常(二)
-------<a href="http://www.itheima.com" target="blank">Java培训.Android培训.iO ...
- Java基础-异常机制
异常( Exception 也称例外)就是在程序的运行过程中所发生的不正常的事件,它会中 断正在运行的程序 所需文件找不到 网络连接不通或中断 算术运算错 (被零除-) 数组下标越界 装载一个不存在的 ...
- Java基础——异常
异常(Exception) 基本概念 Java语言中,将程序执行中发生的不正常情况称为"异常".(开发过程中的语法错误和逻辑错误不是异常) 执行过程中所发生的异常事件可分为两大类: ...
最新文章
- 区块链创业者:谈企业级区块链落地,传统行业的崛起(分享实录)
- oracle数据库连接 ORA-12638:身份证明检索失败
- mysql js 命令行登录_mysqlsh 命令行模式与密码保存-爱可生
- Java8学习笔记(七)--Collectors
- python输入三次密码程序_请教各位大神,为啥以下代码输入修改密码后连输错三次还是能输入...
- Ubuntu:如何卸载 vmware player 或 VMWare Workstation
- Oracle笔记(九) 表的创建及管理
- mysql索引卡死_SQL2000数据库运行缓慢、卡、死锁!请重建索引!
- 【图像分割】基于matlab GUI二值化+灰白质医学影像分割【含Matlab源码 184期】
- oracle sum里面去重,Oracle中碰到的函数和关键字收集
- asc在mysql里面的意思_mysql数据库 asc函数
- PPT设置自动保存时间 mac_第17期分享:如何控制PPT演讲汇报时间?
- LaTex 论文排版(1): Win10 下 LaTex所需软件安装 (Tex live 2018 + Tex studio)
- linux网卡时断时续,网卡不稳定的罪魁祸首
- PostgreSQL下载与安装(Windows版)
- 为什么阿里 P7 都找不到工作了?
- 半小时一篇文过完C语言基础知识点
- Factor Graphs and GTSAM
- 幼麟・闪影・奎特尔~2019不太冷!
- 玩纸牌游戏计算机教案,小班数学活动好玩的扑克牌教案
热门文章
- 2.数据结构笔记学习--线性表基本操作
- sublime text3 package control 报错
- Drbd+Pacemaker实现高可用
- cisco数据中心理论小记-3
- 利用VOIP电话通信服务,他骗得18亿美元
- 33Exchange Server 2010跨站点部署-分支机构邮件从分支机构出
- CGContextAddLines和CGContextAddLineToPoint在线条半透明时候的区别
- linux rpm 校验软件包中的文件
- 如何判断一条曲线是否自己相交?
- matlab simulnk笔记07——模块(接地模块group、终止模块terminal、信号合并mux与分解模块demux)