异常处理(Exception)
来源:互联网 发布:网络工程学院 编辑:程序博客网 时间:2024/05/21 16:57
什么叫异常(Exception):在程序运行过程中出现的错误
再看一张图
异常的分类
异常主要分为:错误、一般性异常(受控异常)、运行期异常(非受控异常)
1)错误:如果应用程序出现了Error,那么将无法恢复,只能重新启动应用程序,最典型的Error的异常是:OutOfMemoryError(内存溢出)
2)受控异常:出现了这种异常必须显示的处理,不显示处理java程序将无法编译通过
3)非受控异常:此种异常可以不用显示的处理,例如被0除异常,java没有要求我们一定要处理
.如何处理异常?
第一种处理方式异常的捕获和处理需要采用try和catch来处理,具体格式如下:try { //包含了可能产生异常的代码}catch(OneException e) { //处理的方式1}catch(TwoException e) {//处理的方式2}finally {//finally可要可不要//一定要执行的代码 }第二种处理方式 public void haha() throws Exception1 e1,Exception2 e2{ //可能出现异常(尤其是编译时异常,一定要处理) //这里的意思是指将可能出现的异常交给上层去处理,不用自己处理 }第三种处理方式(自己手动抛出异常+自己定义一个异常)/**定义一个自定义异常类继承Exception * 并写一个构造函数 */public class TestException extends Exception{public TestException(String string) { System.out.println(string);;}}import java.util.Scanner;/** *定义一个简单的测试类,如果输入的除数为0就抛出你“除数不能为0!” 其实系统会自己检查抛出异常的,我们这里仅仅为了举例说明如何自定义异常及抛出来 */public class Test { public static void main(String[] args) throws Exception { int i = 0; int x = 0; Scanner input = new Scanner(System.in); i=input.nextInt(); x=input.nextInt(); double y; if (i==0) { throw new TestException("除数不能为0!!");//抛出自己定义的异常 } y=x/i; System.out.println(y); }}显示结果05除数不能为0!!Exception in thread "main" TestException at Test.main(Test.java:12)
注释::如果我们是用eclipse作为我们IDE的话 ,系统会自己检查异常的我们会只需要按照系统的提示,抛出相应的异常就行了,但我们要明白异常的体系结构和为什么会抛出异常。。。。。。
0 0
- 异常处理(Exception)
- 异常处理总结(二)- exception specification
- 异常处理说明(Exception Handling Routines)
- 异常处理总结(二)- exception specification
- C++------------------------>异常处理(Exception handling)
- 异常处理程序(Exception handler)
- 异常处理SEH(Structured Exception Handling)
- 深入探索 Java-异常处理(Exception)
- java 异常(Exception)处理机制
- Exception(异常处理)
- Exception异常处理
- Oracle Exception 异常处理
- java异常处理Exception
- Java异常处理Exception
- python Exception 异常处理
- 【java】 异常处理 exception
- java异常处理Exception
- Java - 异常(Exception)处理
- Eclipse常用快捷键
- mysql主备库数据不一致的原因和解决方案(转)
- poj-2488 A Knight's Journey
- 模式匹配(第二篇KMP算法
- linux(ubuntu)系统,进入不了图形界面时,如何进入终端(命令行)?
- 异常处理(Exception)
- Java HashMap 源码解析
- Sublime Text 3 插件汇总
- 南阳oj_(34)韩信点兵
- myeclipse更改deploy location名称
- 浅拷贝、深拷贝以及拷贝构造函数
- javascript常用数组算法总结
- 顺序栈的实现
- 【Ogre引擎架构】 第七讲 粒子系统-爆破特效