为什么有些异常throw出去需要在函数头用throws声明,一些就不用
不用在函数头声明throws IllegalStateException
throw new IOException(".");
不声明throws编译不通过
两种情况
1、Integer.parseInt("1");这个java.lang包里面的方法,有throws NumberFormatException,但我调用的时候不用catch
2、
public final DefaultIoFilterChainBuilder getFilterChain() {
throw new IllegalStateException(
"Current filter chain builder is not a DefaultIoFilterChainBuilder.");
}
这个方法,我不用声明throws照样可以编译通过
所谓checked exception和runtime exception checked exception告知外部用户此方法在某些情况下可能抛出这个错误,你应该捕获并处理错误以便程序在可能的情况下能够继续运行下去(当然你也可以通过throws声明将异常再往上层暴露,但终究有一层是要去catch这个异常的)。这些错误往往是可预期而且可以作为异常流来处理的。checked exception作为语法上的一种强制措施让你在代码编译阶段就必须对异常进行处理。 比如IOException,当你打开、读取、写入文件时可能抛出这个错。你可以捕获并提示最终用户『文件操作失败,请重试』等信息,而不是任由它抛到JVM中导致当前线程挂掉。 而runtime exception可能产生于运行时的一些不可预知的时刻,而且往往产生后没有有效的手段处理,因此不需要强制对其进行声明和捕获。 你可以认为checked exception就是要强制你去处理这个异常(不管你throws多少层,你终归要在某个地方catch它);而runtime exception则没有这个限制,你可以自由选择是否catch。 https://zhidao.baidu.com/question/519014936.html
为什么有些异常throw出去需要在函数头用throws声明,一些就不用的更多相关文章
- java为什么有些异常throw出去需要在函数头用throws声明,一些就不用。
Excepiton分两类:checked exception.runtime exception:直接继承自Exception就是checked exception,继承自RuntimeExcepti ...
- JAVA 异常 throw 与 throws
最近一直throw和throw new …… 获取头部罢工,要彻底生气清楚这件事,他对这个思想精华收集了很多网友.这里摘录. throws全部异常信息throw则是指抛出的一个详细的异常类型.通常在一 ...
- 异常-throw的概述以及和throws的区别
package cn.itcast_06; /* * throw:如果出现了异常情况,我们可以把该异常抛出,这个时候的抛出的应该是异常的对象. * * throws和throw的区别(面试题) thr ...
- javascript篇-----函数作用域,函数作用域链和声明提前
在一些类似C语言的编程语言中,花括号内的每一段代码都具有各自的作用域,而且变量在声明它们的代码段之外是不可见的(也就是我们不能在代码段外直接访问代码段内声明的变量),我们称之为块级作用域,然而,不同于 ...
- .Net CLR GC动态获取函数头地址,C++的骚操作(慎入)
前言: 太懒了,从没有在这里正儿八经的写过文章.看到一些人的高产,真是惭愧.决定稍微变得不那么懒.如有疏漏,请指正. .net的GC都谈的很多了,本篇主要是剑走偏锋,聊聊一些个人认为较为核心的细节方面 ...
- VA中用文件头注释和函数头注释Suggestions
写C++代码,不能不用VA,这里贴两个我最常用的注释Suggestions. [1.File Header 文件头注释] /*** @file $FILE_BASE$.$FILE_EXT$* ...
- JavaScript系列:函数 自执行 表达式 声明 定义
可用方式 (function($) {})(jQuery); !function( $ ){}(jQuery); +function( $ ){}(jQuery); -function( $ ){}( ...
- (转载)javascript函数作用域和提前声明
http://www.cnblogs.com/ArthurPatten/p/3274080.html 一些语言如C.java都有块级作用域,即花括号内的每一段代码都具有各自的作用域,而且变量在声明它们 ...
- javaScript的函数(Function)对象的声明(@包括函数声明和函数表达式)
写作缘由: 平时再用js写函数的时候,一般都是以惯例 function fn () {} 的方式来声明一个函数,在阅读一些优秀插件的时候又不免见到 var fn = function () {} 这种 ...
随机推荐
- Ubuntu 16.04安装WPS
1.下载 http://community.wps.cn/download/ 根据需要对应版本进行下载deb包. 2.安装 sudo dpkg -i wps-office_10.1.0.5672~a2 ...
- 22、Java并发性和多线程-Java中的读/写锁
以下内容转自http://ifeve.com/read-write-locks/: 相比Java中的锁(Locks in Java)里Lock实现,读写锁更复杂一些.假设你的程序中涉及到对一些共享资源 ...
- OSX: node中安装zeromq
1. brew install pkg-config2. brew install zmq3. export PKG_CONFIG_PATH="/usr/local/lib/pkgconfi ...
- HDOJ 5402 Travelling Salesman Problem 模拟
行数或列数为奇数就能够所有走完. 行数和列数都是偶数,能够选择空出一个(x+y)为奇数的点. 假设要空出一个(x+y)为偶数的点,则必须空出其它(x+y)为奇数的点 Travelling Salesm ...
- Android Studio 开发利器【经常使用插件】
1.ADB Idea ADB操作快捷菜单.高速清除数据,重新启动应用,卸载应用等 快捷键: Windows: Ctrl+Alt+Shift+A Mac OSX: Ctrl+Shift+A 当然,你能够 ...
- The 2014 ACM-ICPC Asia Mudanjiang Regional Contest(2014牡丹江区域赛)
The 2014 ACM-ICPC Asia Mudanjiang Regional Contest 题目链接 没去现场.做的网络同步赛.感觉还能够,搞了6题 A:这是签到题,对于A堆除掉.假设没剩余 ...
- Android BroadcastAnyWhere(Google Bug 17356824)漏洞具体分析
Android BroadcastAnyWhere(Google Bug 17356824)漏洞具体分析 作者:简行(又名 低端码农) 继上次Android的LaunchAnyWhere组件安全漏洞后 ...
- 1732 Fibonacci数列 2
1732 Fibonacci数列 2 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 钻石 Diamond 题解 题目描述 Description 在“1250 F ...
- Java代码规范_插件_阿里java开发手册
给大家分享一个阿里巴巴的java开发规范,在日常自动化工作中我们可以参考一下,特别是用java进行coding的同学. 而且还可以利用相应的插件进行代码扫描检测,感兴趣的们可以马上应用到自动化中来. ...
- Linux 数据分析常用 shell命令
.文件合并 目录下有成千上万的小文件,需合并成大文件,直接cat 返回参数列表过长 ls |xargs -t -I{} cat {} >> merge.txt 2.从文本中截取行特定内容 ...