背景故事

影片《金刚》是2005年上映的一部冒险电影,它讲述1933年的美国,一名勇于冒险的企业家及电影制作者,率领摄制队伍到荒岛拍摄,其中包括女主角安及编剧杰克,他们遇到恐龙及当地土著的袭击,安发出的尖叫声换来金刚的回应。这只巨大无比的猩猩,连凶悍的恐龙也惧怕它几分,偏偏它却钟情于安。安其后将金刚由荒岛带回纽约,但却是它悲剧命运的开始。后来金刚被抓到了城市。为保护爱人同军队战斗,金刚为了带安再看一次她曾说过美丽的日出,爬上了帝国大厦,使自己陷入困境,与人类的飞机展开了最后决战。最后它摔下了帝国大厦,为自己的爱人谱写了最后的悲歌。

try-catch之一矮矬穷泡妞

java程序猿也会碰到难以琢磨的try-catch,请看下面的例子

    public static void main(String[] args) {try {System.out.println("Hello world");} catch(IOException e) {System.out.println("抓到一个IO 异常!");}}

这段代码可以打印出什么?

可能不少人会说,这个不是很简单嘛?打印出:

Hello world

其实它压根编译都不能通过

报错情况

Unreachable catch block for IOException. This exception is never thrown from the try statement body

简单的说,就是try里没有能抛出IOException异常的语句,catch该异常就通不过编译。

JSL-11.2.3里规定了

It is a compile-time error if a method or constructor body can throw some exception class E when E is a checked exception class and E is not a subclass of some class declared in the throws clause of the method or constructor.It is a compile-time error if a lambda body can throw some exception class E when E is a checked exception class and E is not a subclass of some class declared in the throws clause of the function type targeted by the lambda expression.It is a compile-time error if a class variable initializer (§8.3.2) or static initializer (§8.7) of a named class or interface can throw a checked exception class.It is a compile-time error if an instance variable initializer (§8.3.2) or instance initializer (§8.6) of a named class can throw a checked exception class,
unless the named class has at least one explicitly declared constructor and the exception class or one of its superclasses is explicitly declared in the throws clause of each constructor.It is a compile-time error if a catch clause can catch checked exception class E1 and it is not the case that the try block corresponding to the catch clause can throw a checked exception class that is a subclass or superclass of E1,
unless E1 is Exception or a superclass of Exception.It is a compile-time error if a catch clause can catch an exception class E1 and a preceding catch clause of the immediately enclosing try statement can catch E1 or a superclass of E1.

根据上面所述,矮矬穷泡妞本身都被排除掉了,只有有一项特长,才能泡妞!

最简单的方法是抛出一个异常或者子异常

import java.io.IOException;
public class TryCatchException {public static void main(String[] args) {try {System.out.println("Hello world");throw new IOException();//或者子异常,如throw new FileNotFoundException();} catch(IOException e) {System.out.println("抓到一个IO 异常!");}}
}

try-catch之二高富帅泡妞

那来看看这个吧!打印什么?

public class TryCatchException {public static void main(String[] args) {try {System.out.println("hello world!");} catch(Exception e) {System.out.println("捕获到异常");}}
}

可能不少人会说,不是和上面的一样嘛!会报编译异常。

哈哈,你掉到坑里了!它打印

hello world!

不管与其相对应的try子句的内容是什么,捕获Exception或者Throwable的catch语句是ok的,这点jsl并没有说清楚。

总之,高富帅泡妞总是很超脱的,很多妞也愿意倒扑!

try-catch之三泡妞技可以继承吗?

我们来看看异常如何继承的吧

public interface FileNotFound {void run() throws FileNotFoundException;
}public interface CloneNotSupported {void run() throws CloneNotSupportedException;
}public class TryCatchException implements FileNotFound,CloneNotSupported {public static void main(String[] args) {TryCatchException e=new TryCatchException();e.run();}@Overridepublic void run() {System.out.println("Hello world");        }
}


上面的程序可以编译通过吗?不少人会说,不能通过编译!原因:TryCatchException继承了FileNotFound和CloneNotSupported的方法,同事必然继承它的异常,故必须捕获这两个异常。

你再次避过了正确答案!可以正确编译,且打印出结果。

一个方法可以抛出的受检查异常的集合时它所适用所有类型声明要抛出的受检查异常的交集,而不是合集。

小结:

矮矬穷就别想着捕获少女心了,想着一项特长吧,比如富!

高富帅可以无所顾忌,无往不利。

泡妞只能最新化的继承,不用太担心。

参考资料

【1】java解惑

转载于:https://www.cnblogs.com/davidwang456/p/11532624.html

猿类如何捕获少女心--难以琢磨的try-catch相关推荐

  1. 反思|开启B站少女心模式,探究APP换肤机制的设计与实现

    反思 系列博客是我的一种新学习方式的尝试,该系列起源和目录请参考 这里 . 概述 换肤功能 并非奇技淫巧,而是已非常普及,尤其当Android Q推出了 深色模式 之后,国内绝大多数主流应用都至少提供 ...

  2. 花果山第一届猿类分级考试实录--Talk is cheap,Show me the code

    本故事纯属虚构,如有雷同,纯属巧合! 故事背景 悟空师徒4人取经回来后,因不耐收到管教,就回到了花果山,带领一帮猴子猴孙逍遥自在的过日子,奈何因在阎王殿里将生死薄中的猴子猴孙的名字都划去了,猴子猴孙是 ...

  3. Ubuntu 20.10 代号 Groovy Gorilla,第二个以猿类命名版本,将于 10 月 22 日发布

    Ubuntu 20.04(Focal Fossa)刚刚发布,现在下一个版本 Ubuntu 20.10 的发布进程也公布了. 首先是代号:Groovy Gorilla,其中 Groovy 有" ...

  4. tp5 保存图片背景黑色_少女心背景图 | 风环绕世界百圈,不如见你时心动

    全世界只有不到1%的人关注了壁纸阿姨 你真是个特别的人 2019.11.16 风环绕世界百圈 不如见你时心动 "你别像风,在我这里掀起了万般波澜,又跟云去了远方." --网易云音乐 ...

  5. “她经济”时代,兜售少女心的乙女游戏将成新风口?

    近日,一款名为<恋与制作人>的手机游戏俘获了不少的少女心,<恋与制作人>是一款超现实恋爱经营的手机游戏,玩家通过游戏操作可以窥视游戏中女主与四个不同背景和身份的男主相遇,并通过 ...

  6. 阿米洛键盘失灵_阿米洛 海韵评测:可爱的键帽,强大的轴型,少女心十足!...

    今日话题:阿米洛 海韵评测:可爱的键帽,强大的轴型,少女心十足! 前几天小编在网上发现一款非常好看的阿米洛键盘,大家都知道阿米洛键盘的外观在所有机械键盘中可谓是做的最好的几种之一.所以小编今天就给大家 ...

  7. 拿什么拯救你——王阿姨的少女心!

    HTC Vive能够重新扭转HTC江河日下的局面吗? 799美元,HTC Vive惊呆众人 在最近的MWC 2016上,HTC也算是赚足眼球,HTC Vive 消费版正式发布,套装售价799美元,折合 ...

  8. 少女心多功能便签本,少女心便签软件办公版

    电脑上有没有适合女生使用的比较少女心的多功能便签本小工具?有没有适合女生办公使用的少女心便签? 电脑上办公使用的桌面便签小工具.桌面便签本小软件,大多是偏向于商务简约的风格,简洁风格的便签本比较符合精 ...

  9. 也说说家养猿类养成套路

    作为猿厂公众号的开(说)篇(说)巨(而)著(已),打算聊聊成为家养猿类的套路.家养的猿类?还有野生的不成?这里的家养是指在厂里搬砖,比如鹅厂.猫厂.猪场.狗场,夫妻店等等...野生的就不好分类了,大多 ...

最新文章

  1. weblogic集群安装心得-程序包发布
  2. Oracle必知基础总结
  3. python字符型_python字符类型
  4. SQLServer 大小写敏感配置
  5. php5.6 event,php安装event扩展
  6. 例题:打印正三角形。两层for循环,难点明白行与列的关系
  7. Android开发好用的依赖库
  8. 一个简洁好用的翻译程序
  9. ubuntu下格式化被写保护的U盘
  10. UVALive - 5713
  11. 每日学英语之041104
  12. js中如何截取小数点后两位数字
  13. 新中式玄关设计方法,设计玄关注意事项
  14. Windows驱动_WDDM之二
  15. android系统怎么取消,安卓系统hd怎么关闭
  16. rk3399平台电量计cw2015驱动分析
  17. app表白 生日 小游戏 表白
  18. 在Apache案例中加入模板引擎
  19. 从3K到30K在长沙这座城市买房买车,23岁的年纪我到底经历了什么
  20. YOLOV5目标检测---labelimg图片标注工具(1)

热门文章

  1. 中心信令服务器编码,基于SIP的中心信令控制服务器①.PDF
  2. java调用oracle删除,使用IDEA对Oracle数据库进行简单增删改查操作
  3. lua 收不到服务器发来消息,lua 学习之错误处理
  4. linux oracle停启,linux下Oracle自动启动与停止总结
  5. python 修改文件名_Python 批量修改文件名
  6. 计算机英语仲裁合词,仲裁 arbitration 法律英语常用词
  7. 显示文字_在 iPhone 上调整显示与文字大小,让眼睛更舒服
  8. tomcat 不支持put 高版本_「MG6_DCT280」湿式七档双离合版本-性价比并不高
  9. linux arcgis10.4安装教程,ArcGIS 10.1 for Server安装教程系列—— Linux下的单机安装
  10. OpenMP入门教程(二)reduce sum