Java中的异常类

一、什么是异常

在Java中,程序编写和运行时,经常会碰到一些非正常情况,导致程序不能正常运行。而我们将这些情况分为两大类,一种是编译时异常,一种是运行时异常。
所有的异常都是从Throwable继承而来

Throwable有两个子类,Error和Exception。

Error类:
其中Error是错误,是在编译期的错误和系统错误都是通过Error抛出的。这些错误表示故障发生于虚拟机自身或是发生在虚拟机试图执行应用时。

Exception类
Exception类,则是另一个非常重要的异常类,它规定的异常是程序本身可以处理的异常,而错误是无法处理的。

二、异常的处理

Java中的异常处理其实是对可检查的异常的处理

1、通过try{}catch(){}语句块来处理

try{// 这里输入需要处理异常的代码
}catch(Exception e){// catch块
}

catch语句半酣要捕获异常类型的声明,当try代码块中的代码出现异常时,后面的catch块就会执行。

2、如果不在出现异常的代码处处理,可以直接抛出

可以通过throws/throw抛出到上层,到调用这个代码的地方进行处理。

import java.util.Scanner;public class personAge{public static void main(String[] args) throws Exception{Scanner sc = new Scanner(System.in);int age = 5;age = sc.nextInt();throw new Exception();}
}

3、finally关键字
finally关键字用来创建在try代码块后面执行的代码块。
无论是否发生异常,finally代码块中的代码总会被执行。
finally代码块出现在catch代码块最后面

try{// 可能出现异常的代码
}catch(异常类型 异常的变量名){}finally{// 必须执行的代码块
}

写一个除法的小例子

import java.util.Scanner;public class Test{public static void main(String[] args){Scanner sc = new Scanner(System.in);int a = sc.nextInt();int b = sc.nextInt();divid(a, b);}public static void divid(int a, int b) {try {System.out.println((a / b));}catch(Exception x) {System.out.println("出现异常后输出的");x.printStackTrace(); // 输出代码异常信息}finally {System.out.println("必须执行的代码");}}
}

运行结果如下:

Java初学日记七之系统异常类相关推荐

  1. Java实用教程笔记 内部类与异常类

    内部类与异常类 Review Note 只有我能用,不希望别人用(内部类的基本思想) .class文件的生成个数 匿名类 匿名类都是一次性的(当前这一次,以后不能用) Conclusion Revie ...

  2. Java基础面试题:常见的异常类有哪些?

    NullPointerException 空指针异常 ClassNotFoundException 指定类不存在 NumberFormatException 字符串转换为数字异常 Java面试 Ind ...

  3. JAVA初学(七):银行账户演示程序

    一.设计梗概 做一个简单的银行.账户演示程序. (1)定义一个账户类,包含用户名.密码.余额等属性.存钱.取钱等方法. (2)定义一个银行类,包含银行名.账户列表等属性,开账户.查账户的功能.账户列表 ...

  4. JAVA初学(七):银行账户演示程序【改进版】

    一.编程说明 在上一篇博客中,笔者通过Scanner实现了由键盘对银行账户的控制,虽说直观性更强一些,但是复杂度也增加了不少,甚至造成最后编出的代码有点离题的意思.因此在借鉴了网上的代码并加以自己的理 ...

  5. 学了数组天下无敌————快乐人的JAVA初学日记[4]

    数组的定义与使用 数组的基本用法 1.1什么是数组 1.2创建数组 1.3数组的使用 2. 数组作为方法的参数 2.1基本用法 2.2 理解引用类型(重点/难点) 2.3 认识 null 2.4 初识 ...

  6. java 自定义异常 好处,什么是自定义异常 自定义异常类有什么好处呢

    自定义异常类有什么好处呢? .比如下面这个程序. using System; class ex : ApplicationExcept小编已经无语了,怪不得没人回答... 基本上是鸡同鸭讲,建议你去C ...

  7. Java篇第七回——内部类与异常类

    一.内部类 我们在谈到某一个场所,比如说剧场时,我们更加关注这个剧场中有哪些角儿,我们在提到剧场时也经常会把角儿们顺带脚提出来.在Java中也有这种逻辑,我们希望在声明一个剧场类时,这个剧场就已经有了 ...

  8. Core Java 读后感 - 第七章 异常、断言和日志

    第七章 异常.断言和日志 7.1 处理异常 如果由于出现错误使得某些操作没有完成, 程序应该: 返回到一种安全状态,并能够让用户执行其他命令 允许用户保存所有工作的结果,并以妥善的方式终止程序 异常处 ...

  9. Java基础巩固(二)异常,多线程,线程池,IO流,Properties集合,IO工具类,字符流,对象流,Stream,Lambda表达式

    一.异常,多线程 学习目标 : 异常的概述 异常的分类 异常的处理方式 自定义异常 多线程入门 1 异常的概述 1.1 什么是异常? 异常就是程序出现了不正常情况 , 程序在执行过程中 , 数据导致程 ...

最新文章

  1. 百度关键词研究: 应避免的5个错误!
  2. javascript mysql读写_微信小程序云开发实现云数据库读写权限
  3. 2019.01.19-2018年6月NEYC集训sequence
  4. Android: 生成安卓可使用的Tflite文件
  5. 如何理解Mysql的索引及他们的原理--------二叉查找树和平衡二叉树和B树和B+树
  6. android studio 中怎么写aspectj代码,Android Studio 使用 AspectJ 实践AOP
  7. java多线程编程_Java多线程编程
  8. .sql文件_自己动手写SQL查询引擎
  9. 【php写日志】php将日志写入文件
  10. 数据库优化java设计模式架构 策略 责任链
  11. 教你win7免费升级到win10系统教程
  12. 计算机实战项目之 [含论文+任务书+中期检查表+答辩PPT+源码等]基于javaweb宠物领养网站
  13. 漂亮有创意的思维导图模板下载教程,教你思维导图怎么画
  14. 利用第三方软件识别图片文字并转换为文本
  15. 王道2023数据结构笔记
  16. 计算机硬盘容量越大运行速度越快,你是不是也感觉电脑内存越大运行速度越快?...
  17. 总体规划计算机制图标准,国土空间规划计算机辅助制图标准来了
  18. JAVAweb JSP飞机订票系统航空机票预订销售系统(机票预订系统)网上机票预订飞机订票
  19. 1162. 【NOI2002】贪吃的九头龙 (Standard IO)
  20. 毕马威《2021年中国证券业调查报告》:金融科技和数字化将成为发展核心

热门文章

  1. html input标签的属性有哪些?input标签的用法总结(附实例)
  2. 虚拟化技术分为哪两种?各自有什么特点?各自有什么特点?
  3. 聚焦科研发展,羽素携手暨大生科院开启护肤新时代
  4. Heroes in My Heart (1)
  5. 怎样让孩子爱上学习--罗胖硬派脱口秀《知识就是力量》
  6. 什么是智慧水务,涉及哪几个方面,处理了什么问题
  7. -webkit-overflow-scrolling:touch导致ios中z-index失效(弹窗层级设置无效)
  8. 西门子串口通讯07-Modbus RTU 协议的多站点轮询(CP341,RS485)
  9. 支付宝支付成功后通知在微信打开的提示页面
  10. 备份Windows10的激活信息