目录

  • 异常的概念及分类
  • 异常的处理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基础 —— 异常相关推荐

  1. Java基础-异常(Exception)处理

    Java基础-异常(Exception)处理 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.异常的概述 什么是异常?Java代码在运行时期发生的问题就是异常.在Java中,把异 ...

  2. Java基础-异常-throws Exception-抛声明

    Java基础-异常-throws Exception-抛声明 参考文章: (1)Java基础-异常-throws Exception-抛声明 (2)https://www.cnblogs.com/pl ...

  3. JAVA基础——异常详解

    阅读目录 一.异常简介 二.try-catch-finally语句 三.throw和throws关键字 四.java中的异常链 五.结束语 JAVA异常与异常处理详解 回到顶部 一.异常简介 什么是异 ...

  4. Java基础—异常分类及处理

    目录 一.概念 三.异常的处理方式 四.throw 和 throws 的区别: 一.概念 如果某个方法不能按照正常的途径完成任务,就可以通过另一种路径退出方法.在这种情况下会抛出一个封装了错误信息的对 ...

  5. Java基础 — 异常

    异常对象都是派生于Throwable 类的一个实例. 异常层次结构简化示意图: 所有的异常都是由Throwable 继承而来,但在下一层立即分解为两个分支:Error 和 Exception Erro ...

  6. Java基础---异常---turow和throws

    异常 1.Throwable:可抛出的,是异常的顶层父类,其他的异常或者错误都是Throwable的子类类型,只有是Throwable的体系类型,才可以使用异常的处理机制 2.Error:错误,是Th ...

  7. 黑马程序员--java基础--异常(二)

    -------<a href="http://www.itheima.com" target="blank">Java培训.Android培训.iO ...

  8. Java基础-异常机制

    异常( Exception 也称例外)就是在程序的运行过程中所发生的不正常的事件,它会中 断正在运行的程序 所需文件找不到 网络连接不通或中断 算术运算错 (被零除-) 数组下标越界 装载一个不存在的 ...

  9. Java基础——异常

    异常(Exception) 基本概念 Java语言中,将程序执行中发生的不正常情况称为"异常".(开发过程中的语法错误和逻辑错误不是异常) 执行过程中所发生的异常事件可分为两大类: ...

最新文章

  1. 区块链创业者:谈企业级区块链落地,传统行业的崛起(分享实录)
  2. oracle数据库连接 ORA-12638:身份证明检索失败
  3. mysql js 命令行登录_mysqlsh 命令行模式与密码保存-爱可生
  4. Java8学习笔记(七)--Collectors
  5. python输入三次密码程序_请教各位大神,为啥以下代码输入修改密码后连输错三次还是能输入...
  6. Ubuntu:如何卸载 vmware player 或 VMWare Workstation
  7. Oracle笔记(九) 表的创建及管理
  8. mysql索引卡死_SQL2000数据库运行缓慢、卡、死锁!请重建索引!
  9. 【图像分割】基于matlab GUI二值化+灰白质医学影像分割【含Matlab源码 184期】
  10. oracle sum里面去重,Oracle中碰到的函数和关键字收集
  11. asc在mysql里面的意思_mysql数据库 asc函数
  12. PPT设置自动保存时间 mac_第17期分享:如何控制PPT演讲汇报时间?
  13. LaTex 论文排版(1): Win10 下 LaTex所需软件安装 (Tex live 2018 + Tex studio)
  14. linux网卡时断时续,网卡不稳定的罪魁祸首
  15. PostgreSQL下载与安装(Windows版)
  16. 为什么阿里 P7 都找不到工作了?
  17. 半小时一篇文过完C语言基础知识点
  18. Factor Graphs and GTSAM
  19. 幼麟・闪影・奎特尔~2019不太冷!
  20. 玩纸牌游戏计算机教案,小班数学活动好玩的扑克牌教案

热门文章

  1. 2.数据结构笔记学习--线性表基本操作
  2. sublime text3 package control 报错
  3. Drbd+Pacemaker实现高可用
  4. cisco数据中心理论小记-3
  5. 利用VOIP电话通信服务,他骗得18亿美元
  6. 33Exchange Server 2010跨站点部署-分支机构邮件从分支机构出
  7. CGContextAddLines和CGContextAddLineToPoint在线条半透明时候的区别
  8. linux rpm 校验软件包中的文件
  9. 如何判断一条曲线是否自己相交?
  10. matlab simulnk笔记07——模块(接地模块group、终止模块terminal、信号合并mux与分解模块demux)