java异常处理规范
- 异常处理的优势【存在意义】:异常检测者有检测出异常的能力,但不知道在出现该异常的情况下应该怎么处理。故库方法一般会抛出异常给调用者来处理。所以总结而言,异常处理的优势就是,将处理错误(调用者处理)从检测错误(被调用者检测)中分离出来。
- 异常的分类:
- 系统错误:内部系统错误,虚拟机抛出。免检。
- 异常:由程序和外部环境所引起的错误,这些错误能被程序捕获和处理。必检。
- 运行时异常:程序设计错误,通常虚拟机抛出。免检。
- 关于异常处理需要注意的点:
- Exception类,既可能是普通的异常,也可能是运行时异常,故实际编程中最好不要直接抛出Exception,而是抛出其子类。
- 运行时异常,只需抛出,无需捕获处理(java8允许处理,但是不要画蛇添足)
- 警告:
- Exception的子类中:
- 必检异常类型常见的有:FileNotFoundException、IOException(可以动手试试,必须处理的异常);
- 免检异常类型常见的有:NullPointerExceptin、ArithmeticException、IndexOutofBoundsException、IllegalArgumentException(抛出后无需处理的异常)
- java没有整数上溢或下溢异常
- Exception的子类中:
- 运行时异常和普通异常:
- 若出现运行时异常,如NullPointerException,直接导致当前线程中断;
- 若出现普通异常:
- 抛出处理:当前线程中断;换句话说,当前线程(的当前代码)不接受你这个异常的存在,我不想理你了。
- 捕获处理:当前线程不会中断,后续继续处理。你这个异常,当前线程是可以接受的,我还会继续后续处理。
- 很显然,异常的处理应当视我们的业务逻辑需要,做出相应的合理处置方式。
- 现在,你总该明白什么时候应该(在方法签名后面)声明异常,什么时候(在方法中)捕获异常了吧?
java异常处理规范的更多相关文章
- 根据异常自定义处理逻辑(【附】java异常处理规范)
▄︻┻┳═一『异常捕获系列』Agenda: ▄︻┻┳═一有关于异常捕获点滴,plus我也揭揭java的短 ▄︻┻┳═一根据异常自定义处理逻辑([附]java异常处理规范) ▄︻┻┳═一利用自定义异常来 ...
- Java 异常处理基本规则,Java异常处理的基本规范
看了团队中原来代码中的异常处理,心碎了一地,稍微对照阿里巴巴的异常处理规范整理了一遍,准备分享一下,Java的异常处理规范&约束. 一.运行异常的扑捉 不要捕获 Java 类库中定义的继承自 ...
- 札记:Java异常处理
异常概述 程序在运行中总会面临一些"意外"情况,良好的代码需要对它们进行预防和处理.大致来说,这些意外情况分三类: 交互输入 用户以非预期的方式使用程序,比如非法输入,不正当的操作 ...
- Java提高篇——Java 异常处理
异常的概念 异常是程序中的一些错误,但并不是所有的错误都是异常,并且错误有时候是可以避免的. 比如说,你的代码少了一个分号,那么运行出来结果是提示是错误java.lang.Error:如果你用Syst ...
- Java 异常处理机制和集合框架
一.实验目的 掌握面向对象程序设计技术 二.实验环境 1.微型计算机一台 2.WINDOWS操作系统,Java SDK,Eclipse开发环境 三.实验内容 1.Java异常处理机制涉及5个关键字:t ...
- java异常处理机制 (转载)
java异常处理机制 本文来自:曹胜欢博客专栏.转载请注明出处:http://blog.csdn.net/csh624366188 异常处理是程序设计中一个非常重要的方面,也是程序设计的一大难点,从C ...
- Java—异常处理总结
异常处理是程序设计中一个非常重要的方面,也是程序设计的一大难点,从C开始,你也许已经知道如何用if...else...来控制异常了,也许是自发的,然而这种控制异常痛苦,同一个异常或者错误如果多个地方出 ...
- Java异常处理总结
题记:本文为工作十年回顾总结系列之Java语言之异常处理篇,主要内容为<Thinking in Java >第四版和<Effective Java>第二版的阅读笔记,网上流传的 ...
- Java异常处理机制 —— 深入理解与开发应用
本文为原创博文,严禁转载,侵权必究! Java异常处理机制在日常开发中应用频繁,其最主要的不外乎几个关键字:try.catch.finally.throw.throws,以及各种各样的Exceptio ...
随机推荐
- 局域网内通讯APP
局域网内通讯APP [应用描述] 局域网内通讯是一款Android平台的实时通讯软件.提供基于无线局域网(WIFI)的实时通讯功能,支持发送文字.语音消息,支持实时语音及视频聊天.无需接入运营商网络, ...
- 【Java】List遍历时删除元素的正确方式
当要删除ArrayList里面的某个元素,一不注意就容易出bug.今天就给大家说一下在ArrayList循环遍历并删除元素的问题.首先请看下面的例子: import java.util.ArrayLi ...
- Java 浅拷贝和深拷贝
一看就懂的,java深拷贝浅拷贝 将一个对象的引用复制给另外一个对象,一共有三种方式.第一种方式是直接赋值,第二种方式是浅拷贝,第三种是深拷贝.所以大家知道了哈,这三种概念实际上都是为了拷贝对象啊. ...
- MySQL优化COUNT()查询
COUNT()聚合函数,以及如何优化使用了该函数的查询,很可能是最容易被人们误解的知识点之一 COUNT()的作用 COUNT()是一个特殊的函数,有两种非常不同的作用: 统计某个列值的数量 统计行数 ...
- 【代码笔记】Web-CSS-CSS样式列表(url)
一,效果图. 二,代码. <!DOCTYPE html> <html> <head> <meta charset="utf-8"> ...
- Android为TV端助力 关于4.0之后不能直接获取SD卡外部存储路径的问题
Environment.getExternalStorageDirectory()是Android 2.x时代的产物,那时Android主流设备只有很小的内置存储器,然后都会外置一张sd卡,那时这个方 ...
- ArcFace虹软与Dlib人脸识别对比
我司最近要做和人脸识别相关的产品,原来使用的是其他的在线平台,识别率和识别速度很满意,但是随着量起来的话,成本也是越来越不能接受(目前该功能我们是免费给用户使用的),而且一旦我们的设备掉线了就无法使用 ...
- jQuery省市区三级联动菜单
<style> select{ padding:5px 0; } .outer{ width:500px; margin:20px auto; } </style> <d ...
- JVM远程调试功能
有时候想调试线上的程序 可以启用远程调试功能 在本地调试远程代码. 远程JVM启用调试模式 /usr/local/jdk/bin/java -server -Xms256m -Xmx256m -XX: ...
- 面向对象_new,__eq__,__hash__
老师博客:http://www.cnblogs.com/Eva-J/articles/7351812.html __new__ __init__是一种初始化的方法 __new__是构建方法,创建一个对 ...