对Java异常的理解
JAVA小白手写总结
提示:本篇简单列举了一些Java中的异常与异常处理
前言
提示:很多小伙伴们都会问到,什么是异常呢,又该怎么解决呢?
下面我们就从下面的一个案例中切入今天的内容。
提示:以下是本篇文章正文内容,下面案例可供参考
一、异常是什么?
示例:你要从一个文件读信息,可这个文件不存在,程序无法运行下去了,故程序要抓这些异常,通过异常处理机制来抛出这些异常,程序员就可以通过抛出的异常来修改代码。try{}catch{}finally{}try块中放入可能会出现异常的代码,catch块负责捕获异常,finally块负责处理一些必须执行的代码,比如关闭流等。
二、异常的种类
1.认识异常的两大类
在Java中我们将异常分为两大类
- Error,表示的是虚拟机错误
- Exception,表示的是编码、环境、用户操作输入时出现的问题
2.常见的几类异常
- 空指针异常 NullPointerException
- 数组下标越界异常 ArrayIndexOutOfBoundsException
- 类型转换异常 ClassCastException
- 算术异常 AirthmeticException
- 文件异常 IOException
三、异常的处理
处理异常时我们通常采用try—catch以及try—catch—finally来处理异常
1、处理异常
- try代码块中存放的是要监控的区域
- catch代码块中捕获异常
- finally代码块中处理善后工作,一般存放IO流/资源的关闭
结构如下:
try{
//有可能出现异常的语句
}catch(Exception e){//异常的类型 和接受对象
}finally {
//异常的出口,最后执行且一定被执行
}
package com.yichang;
public class Test {
public static void main(String[] args) {
try {
System.out.println(1/0);//0不能做除数
}catch (Exception e){
e.printStackTrace();//打印错误信息,给程序员看的
System.out.println("异常");//给客户看的
}finally {
//一般做收尾工作
System.out.println("finally");
}
}
}
2、异常抛出
- throws表示方法准备要扔出来一个异常
- throw表示向外抛出异常
public void diivide(int one,int two) throws Exception{
if(two == 0){
throw new Exception("两数相除,除数不能为0");
}else{
System.out.println("两数相除,结果为"+one/two);
}
}
实际应用中的经验总结
- 处理运行时异常时,采用逻辑去合理规避同时辅助try—catch处理
- 在多重catch块后面,可以加一个catch(Exception)来处理可能会被遗漏的异常
- 对于不确定的代码,也可以加上try—catch,处理潜在的异常
- 尽量去处理异常,切忌只是简单地调用printStackTrace()去打印输出
- 具体如何处理异常,要根据不同的业务需求和异常类型去决定
- 尽量添加finally语句块去释放占有的资源
对Java异常的理解的更多相关文章
- java异常的 理解
1.体系结构 java.lang.Object |----java.lang.Throwable |-------java.lang.Error:错误,java程序对此无能为力,不显式的处理 |--- ...
- java异常常见面试问题
java异常常见面试问题 一.java异常的理解 异常主要是处理编译期不能捕获的错误.出现问题时能继续顺利执行下去,而不导致程序终止,确保程序的健壮性. 处理过程:产生异常状态时,如果当前的conte ...
- 全面理解Java异常的运行机制
1. 引子 try…catch…finally恐怕是大家再熟悉不过的语句了,而且感觉用起来也是很简单,逻辑上似乎也是很容易理解.不过,我亲自体验的“教训”告诉我,这个东西可不是想象中的那么简单.听话. ...
- 全面理解java异常机制
在理想状态下,程序会按照我们预想的步骤一步一步的执行,但是即使你是大V,你也不可避免出错,所以java为我们提供了异常机制.本文将会从以下几个方面介绍java中的异常机制: 异常机制的层次结构 异常的 ...
- Java基础 -- 深入理解Java异常机制
异常指不期而至的各种状况,如:文件找不到.网络连接失败.非法参数等.异常是一个事件,它发生在程序运行期间,干扰了正常的指令流程.Java通 过API中Throwable类的众多子类描述各种不同的异常. ...
- 深入理解java异常【绝对经典,推荐最少看五遍】
http://blog.csdn.net/hguisu/article/details/6155636 补充:检查异常(checkedException)与运行异常,什么时候throw,什么时候thr ...
- 对Java中的异常的理解
1.What is exception in Java? Java使用异常描述程序中可能出现的不正常情况.这个不正常可以是java认为的不正常,也可以是你主观上的出乎意料(自定义异常).总而言之,异常 ...
- JAVA 异常分类与理解
摘自CSDN:::::http://blog.csdn.net/hguisu/article/details/6155636 1. 引子 try…catch…finally恐怕是大家再熟悉不过的语句了 ...
- 加深理解Java异常概念并熟记5个最常见的运行时异常
加深理解Java异常概念并熟记5个最常见的运行时异常 说明Error与Exception的联系和区别有哪些? 列举最常见的5个运用时异常. 1.Error和Exception的联系和区别: Error ...
随机推荐
- 1.配置gitblit
作者 微信:tangy8080 电子邮箱:914661180@qq.com 更新时间:2019-06-21 14:38:43 星期五 欢迎您订阅和分享我的订阅号,订阅号内会不定期分享一些我自己学习过程 ...
- codeforces 1C (非原创)
C. Ancient Berland Circus time limit per test 2 seconds memory limit per test 64 megabytes input sta ...
- window.onresize使用实例
<!DOCTYPE html> <html> <head> <title>请调整浏览器窗口</title> <meta charset ...
- mybatis(八)手写简易版mybatis
一.画出流程图 二.设计核心类 二.V1.0 的实现 创建一个全新的 maven 工程,命名为 mebatis,引入 mysql 的依赖. <dependency> <groupId ...
- 使用 js 实现一个简易版的 drag & drop 库
使用 js 实现一个简易版的 drag & drop 库 具有挑战性的前端面试题 H5 DnD js refs https://www.infoq.cn/article/0NUjpxGrqRX ...
- React Hooks 实现一个计时器组件
React Hooks 实现一个计时器组件 useEffect https://reactjs.org/docs/hooks-reference.html#useeffect import React ...
- js & array & shuffle
js & array & shuffle const list = [1, 2, 3, 4, 5, 6, 7, 8, 9]; list.sort(() => Math.rando ...
- Baccarat项目专用代币BGV的价值如何?
NGK投资者对于NGK平台自身的DeFi项目呼声越来越高,经过数月的紧张研发,检验和内测工作,NGK官方将于近日推出其去中心化金融项目--Baccarat,此项目为避免以太坊易被攻击,网络拥堵出块慢以 ...
- Error Code: 1452 Cannot add or update a child row: a foreign key constraint fails
错误: Error Code: 1452 Cannot add or update a child row: a foreign key constraint fails 错误产生情景:我向一张带外键 ...
- 1086 Tree Traversals Again——PAT甲级真题
1086 Tree Traversals Again An inorder binary tree traversal can be implemented in a non-recursive wa ...