Java checked异常 和 RuntimeException
RuntimeException
RuntimeException是非常特殊的子类,你可以不用throw和throws。
哪怕你throw了,也没必要throws,即使你throws了,调用者也没必要try-catch。
之所以不用在函数上声明,是因为不需要让调用者处理,当该异常发生,希望程序停止,
因为在运行时,出现了无法继续运算的情况,希望程序停止后由程序员对代码进行修正。
自定义异常时,如果该异常的发生,无法继续进行运行,就让自定义异常类继承RuntimeException
ArithmeticException - 算术运算中,被0除或模除。
ArrayIndexOutOfBoundsException - 数组越界访问。
BufferOverflowException - 缓冲区溢出异常。
NullPointerException - 试图访问一空对象的变量、方法或空数组的元素。
ArrayStoreException - 数据存储异常,写数组操作时,对象或数据类型不兼容。
ClassCastException - 类型转换异常。
IllegalArgumentException - 方法的参数无效。
NumberFormatException - 数据格式异常,试图把一字符串非法转换成数值(或相反)
IllegalThreadStateException - 试图非法改变线程状态,比如试图启动一已经运行的线程。
运行时异常和ckecked异常的区别
对于异常分两种:检查异常和非检查异常(运行时异常)
检查异常 :
    编译时被检测的异常(throw后,方法有能力处理就try-catch处理,没能力处理就必须throws)。
运行时异常 :
    编译时不被检查的异常(运行时异常。RuntimeException及其子类)。
1、机制上
主要表现在以下两个方面 :
(1)如何定义方法
(2)如何处理抛出的异常
运行时异常:
    不需要用 throws 声明抛出异常对象所属类,也可以不用 throw 抛出异常对象或异常引用。
    对于调用该方法,也不需要放于 try-catch 代码块中。
    (如果你捕获它,就会冒这么一个风险:程序代码错误被掩盖在运行中无法察觉)
检查异常:
    一旦用 throw 抛出异常,如果当前方法可处理异常,那么直接在该方法内用try-catch去处理。
    如果当前方法不具备处理该异常的能力,那么就必须在参数列表后方法体前用 throws 声明异常所属类,
    交给调用该方法的调用者(方法)去处理 。
2、逻辑上
从逻辑的角度来看,checked异常 和 RuntimeException 有着不同的使用目的:
    检查性异常用来指示一种调用方能够直接处理的异常情况(例如: 用户输入错误,程序可以直接捕获并处理,提示用户输入错误),
    而 RuntimeException 是用来指调用方本身无法处理或回复的程序错误
    (例如,你封装个库给别人用,当别人调用你库中某个方法是,需要传入某些参数,
    如果用户传入的参数不合法,你自己没办法处理,那么你抛出的就应该是运行时异常)。
ckecked异常包括:
    IOException
    SQLException
    ClassNotFoundException
    InterruptedException(中断异常-调用线程睡眠时候)
    DataFormatException
    FileNotFoundExcetion
Exception一自定义异常
https://www.cnblogs.com/loveer/p/11314089.html
Java checked异常 和 RuntimeException的更多相关文章
- Java checked 异常 和 RuntimeException(运行时异常)
		目录 一.运行时异常 1.什么是RuntimeExceptioin 2.运行时异常的特点 3.如何运用运行时异常 二.运行时异常和ckecked异常的区别 1.机制上 2.逻辑上 一.运行时异常 1. ... 
- Java的异常:Error与Exception
		一. 异常机制的概述 异常机制是指当程序出现错误后,程序如何处理.具体来说,异常机制提供了程序退出的安全通道.当出现错误后,程序执行的流程发生改变,程序的控制权转移到异常处理器. 程序错误分 ... 
- Java 面向对象 异常处理:RunTimeexception,try-catch,异常声明throws,自定义异常,throw和throws的区别,多异常处理(9)
		Java 面向对象 异常处理:RunTimeexception,try-catch,异常声明throws,自定义异常,throw和throws的区别,多异常处理(9) 
- java中checked异常和unchecked异常区别?
		马克-to-win:checked和unchecked异常区别:结论就是:1)RuntimeException和他的子类都是unchecked异 常.其他的都是checked异常.马克-to-win: ... 
- 【java】异常和处理
		(根据http://www.imooc.com/learn/110 陈码农老师教学视频总结) 一.异常体系结构 所有不正常类都继承于Throwable类 1.异常两个子类 error & ... 
- Java基础——异常体系
		在Java中,异常对象都是派生于Throwable类的一个实例,Java的异常体系如下图所示: 所有的异常都是由Throwable继承而来,在下一层立即分解为两个分支,Error和Exception. ... 
- [编织消息框架][JAVA核心技术]异常基础
		Java异常体系结构 Thorwable类所有异常和错误的超类,有两个子类Error和Exception,分别表示错误和异常. 其中异常类Exception又分为运行时异常(RuntimeExcept ... 
- 关于Java的异常
		异常机制概述 异常机制是指当程序出现错误后,程序如何处理.具体来说,异常机制提供了程序退出的安全通道.当出现错误后,程序执行的流程发生改变,程序的控制权转移到异常处理器. 异常处理的流程 当程序中抛出 ... 
- 哪些异常是RuntimeException?Sql异常属于RuntimeException吗?Spring下SQL异常事务回滚
		一,为什么框架中根本没有对Exception的一般子类进行回滚配置,异常发生时,事务都进行了回滚 ,说好的只会对RuntimeException(Unchecked 非受检异常)回滚呢? 此时,我们就 ... 
随机推荐
- KiCAD批量修改丝印大小
			KiCAD批量修改丝印大小 1.编辑->编辑文本与图片属性 2.范围 选择封装参考,活动 首选选择 “设定为指定值”,然后选择要修改的层,输入想要修改的参数 注意:文本高度与文本宽度比例要适中, ... 
- nexus私服仓库搭建以及项目引用
			第一步:使用ubunto下载安装nexus 并打开登录进入到nexus管理页面,默认账号为 admin 密码在 admin.password 中,首次登录会让你重新修改密码 第二步 配置自己本地 ... 
- 群晖修改启用root账号密码
			DSM6.0以后,官方修改了系统的ROOT密码;需要修改才能启用并使用 软件准备 PUTTY点击下载 DSM中开启SSH 控制面板-终端机和SNMP-启动SSH 打开PUTTY 输入DSM IP地址 ... 
- 【Luogu】【关卡2-1】简单的模拟(2017年10月)
			任务说明:开始普及组的训练!所谓模拟,就是直接根据题意编写,思维难度简单. 铺地毯 进制转换 多项式输出 机器翻译 排座椅 笨小猴 都是简单模拟题 
- windows10自带的画图软件打出来的字是斜的,怎么解决?
			因为字体中带@的字体,方向就是斜的,所以打字时不要用前面带@符号的字体. 用其他字体方向为正常的 
- 互斥量mutex简介
			互斥量又称互斥锁.互斥量是一个可以处于两态之一的变量:解锁和加锁. 简介 编辑 如果不需要信号量的计数能力,有时可以使用信号量的一个简化版本,称为互斥量(mutex).互斥量仅仅适用于管理共享资源或一 ... 
- Nginx缓存配置指南
			1.如何配置基本缓存设置 开启简单的缓存配置,只需要两个指令:proxy_cache_path和proxy_cache.proxy_cache_path配置缓存的存放地址和其他的一些常用配置,prox ... 
- CSScomb.js  --- 自定义 CSS 编写风格配置文件
			一.排序分类 1. content overflow position z-index display float ... 表示定位/布局的属性(content比较特殊,作为伪元素不可少的,经常放置于 ... 
- Service5
			DHCP概述及原理• Dynamic Host Configuration Protocol – 动态主机配置协议,由 IETF(Internet 网络工程师任务小组)组织制定,用来简化主机地址分配 ... 
- install busybox时报error: storage size of ‘rlimit_fsize’ isn’t known struct rlimit rlimit_fsize
			解决办法: 在busybox根目录下查找到文件:find -name libbb.h 在libbb.h.h中包含sys/resource.h 说明: 上述错误的原因是rlimit结构体未知,原因是相应 ... 
