Java中的异常
一.什么是异常
异常就是在程序的运行过程中所发生的不正常的事件,如所需文件找不到,网络连接不通或中断,算术运算出错(如被0除),数组下标越界,装载了一个不存在的类,对null的操作,类型转换异常等等。那么异常会中断正在运行的程序。
二.异常处理
异常处理机制就像我们对平时可能会遇到的意外情况,预先想好了一些处理办法。也就是说,在程序执行代码的时候,万一发生了什么异常,程序会按照预定的处理办法对异常进行处理,异常处理完毕后,程序继续运行。
三.异常的分类
01.Throwable 类是 Java 语言中所有错误或异常的超类。它有两个子类:Error和Exception。
02.Error:
表示仅靠程序本身无法恢复的严重错误,如内存溢出动态链接失败,虚拟机错误。应用程序不应该抛出这种类型的对象(一般是由虚拟机抛出)。假如出现这种错误,除了正确使程序退出外,在其他反面是无能为力的。比如说VirtualMachineError:当 Java 虚拟机崩溃或用尽了它继续操作所需的资源时,抛出该错误。
03.Exception:
有java应用程序抛出和处理的非严重错误,如所需文件找不到,网络连接不通或中断,算术运算出错(如被0除),数组下标越界,装载了一个不存在的类,对null的操作,类型转换异常等等.
04.运行时异常:
包括RuntimeExcption及所有子类,不要求程序非要对他做出处理。
05.checked异常(非运行时异常):
除了运行时异常外的其他由Exception继承来的异常类。程序必须捕获或者声明抛出这种异常,否则会出现编译错误,无法通过编译,处理方式有两种:通过try-catch在当前位置捕获并处理异常;通过throws声明抛出异常,交给上一级调用方法处理。
四.异常的使用
常见异常:

01.ArrayIndexOutOfBoundsException
int[] ints = new int[] { 1, 2, 3, 4 };
try {
System.out.println(ints[4]);
System.out.println("我能执行到吗?");// 发生异常以后,后面的代码不能被执行
} catch (ArrayIndexOutOfBoundsException e) {
System.out.println("数组越界错误");
}
System.out.println("异常出现");
运行结果:
数组越界错误
异常出现
02.ArithmeticException:算术错误
System.out.println("请输入除数:");
int result=input.nextInt();
System.out.println("请输入被除数:");//这里输入0
int result2=input.nextInt();
try {
int num=result/result2;
System.out.println("结果:"+num);
} catch (ArithmeticException e) {
System.out.println("算术错误!");
}
如果被除数的输入为0的话,就会产生算术错误
运行结果:
算术错误
我们上面列举的常见异常也非常多,我在这里就不一一来写了,希望大家自己研究一下。
五.多重catch块
一段代码可能会引发多种异常,这时,可以在一个catch快后面多跟几个catch快,分别处理不同的 异常,但需要注意的是排列的顺序必须是从子类到父类,最后一个一般都是Exception类,那么如果将父类异常放到前面,那么所有的异常将被捕获,后面的子类异常将得不到执行的机会。
六.抛出异常和声明异常
在编程过程中,我们往往会遇到这种情况,在当前环境中无法解决,比如用户传入的参数错误等。此时,就要从当前环境中抛出异常提交给上级来处理。
在java语言中,使用throw关键字来抛出异常
private String name="";//姓名
//设置性别
public void setSex(String sex)throws Exception {//声明异常使用throws关键字
if(sex.equals("男")||sex.equals("女"))
{
this.sex = sex;
}
else
{
throw new Exception("性别必须是男或女");//抛出异常使用throw关键字
}
Java中的异常的更多相关文章
- 【Java心得总结二】浅谈Java中的异常
作为一个面向对象编程的程序员对于 下面的一句一定非常熟悉: try { // 代码块 } catch(Exception e) { // 异常处理 } finally { // 清理工作 } 就是面向 ...
- Java中的异常-Throwable-Error-Exception-RuntimeExcetpion-throw-throws-try catch
今天在做一个将String转换为Integer的功能时,发现Integer.parseInte()会抛出异常NumberFormatException. 函数Integer.parseInt(Stri ...
- Java中的异常详解
一.异常定义 阻止当前方法或作用域继续执行的问题,称为异常 二.异常分析 所有不正常类都继承Throwable类,这个类主要有两个子类Error类和Exception类.Error指系统错误 ...
- Java中的异常和处理详解
简介 程序运行时,发生的不被期望的事件,它阻止了程序按照程序员的预期正常执行,这就是异常.异常发生时,是任程序自生自灭,立刻退出终止,还是输出错误给用户?或者用C语言风格:用函数返回值作为执行状态?. ...
- Java中的异常简介
Java中异常的分类 Java中的异常机制是针对正常运行程序的一个必要补充,一般来说没有加入异常机制,程序也能正常运营,但是,由于入参.程序逻辑的严谨度,总会有期望之外的结果生成,因此加入异常机制的补 ...
- java中的异常类
Java中的异常: 1. Throwable是所有异常的根,java.lang.Throwable Throwable包含了错误(Error)和异常(Exception),Exception又包含了运 ...
- Java 中的异常
前段时间集合的整理真的是给我搞得心力交瘁啊,现在可以整理一些稍微简单一点的,搭配学习 ~ 突然想到一个问题,这些东西我之前就整理过,现在再次整理有什么区别嘛?我就自问自答一下,可能我再次整理会看到不一 ...
- Java 中的异常和处理详解
Java 中的异常和处理详解 原文出处: 代码钢琴家 简介 程序运行时,发生的不被期望的事件,它阻止了程序按照程序员的预期正常执行,这就是异常.异常发生时,是任程序自生自灭,立刻退出终止,还是输出错误 ...
- Java 中的异常和处理详解(转载)
原文出处: 代码钢琴家 简介 程序运行时,发生的不被期望的事件,它阻止了程序按照程序员的预期正常执行,这就是异常.异常发生时,是任程序自生自灭,立刻退出终止,还是输出错误给用户?或者用C语言风格:用函 ...
- Java中的异常和处理详解(转发:https://www.cnblogs.com/lulipro/p/7504267.html)
简介 程序运行时,发生的不被期望的事件,它阻止了程序按照程序员的预期正常执行,这就是异常.异常发生时,是任程序自生自灭,立刻退出终止,还是输出错误给用户?或者用C语言风格:用函数返回值作为执行状态?. ...
随机推荐
- 二级联动banner【墨芈原创,大神勿喷】
这个banner效果在几个月前都做了,不过因为代码添乱,而且不宜调用就没发布,经过2周时间间间断断的编写,插件终于搞定了,除框架外其它都开源发布,至于框架没给源码是因为还没做好,后期做好了也会发布出来 ...
- jdbc基础 (一) MySQL的简单使用
前段时间学习了jdbc,正好利用这几篇文章总结一下. JDBC 可做三件事:与数据库建立连接.发送操作数据库的语句并处理结果. 而程序首先要做的就是加载数据库驱动,这里我使用的是mysql: Stri ...
- ios9+xcode7 适配笔记
升级了xcode7,最近ios9上马,又到了草泥马的时间,apple开放团队每次系统更新,都是无数个草泥马的适配夜晚,现在ios9上线以前的app竟然启动crash,这是要闹哪样. 1.微信和微博的s ...
- [BZOJ2879][Noi2012]美食节(最小费用最大流动态加边)
题目:http://www.lydsy.com:808/JudgeOnline/problem.php?id=2879 分析: 和bzoj1070一样,但这题的数据范围大了很多,如果直接建图就会TLE ...
- linux网络命令
关键字 write wall last lastlog traceroute netstat mount 1.write 该命令可以给所有在线用户发送消息 示例: 接受消息用户:按回车可以退出 2.w ...
- [C#基础]说说委托+=和-=的那些事
写在前面 为什么会突然想说说委托?原因吗,起于一个同事的想法,昨天下班的路上一直在想这个问题,如果给委托注册多个方法,会不会都执行呢?为了一探究性,就弄了个demo研究下. += 大家都知道委托都继承 ...
- Moqui学习Day3
添加一个新建表单 添加一个按钮来弹出新建表单,并创建一个转换来处理输入数据操作. 在FindTutorial.xml文件中添加一个转换. <!--新增 列表 --> <transit ...
- 每天一个linux命令(42):crontab命令
前 一天学习了 at 命令是针对仅运行一次的任务,循环运行的例行性计划任务,linux系统则是由 cron (crond) 这个系统服务来控制的. Linux 系统上面原本就有非常多的计划性工作,因此 ...
- session,cookie
Session 和cookie的学习 cookie cookie的建立 setcookie(name,value); setcookie(name,value,expiration,path,host ...
- session实现防止重复提交,以及验证
参考文档 1.生成Token的参考文档.http://www.cnblogs.com/TianFang/p/3180899.html 2.主要参考文档.http://www.cnblogs.com/x ...