lsbwahaha
java解惑中的—異常,簡單程序,但容易錯
下面三個程序每一個都會打印些什么? 不要假設他們都可以編譯通過:
第一個程序:
import
java.io.IOException;
public
class
Arcane1
{
public
static
void
main(String[] args)
{
try
{
System.out.println(
"
hello lsbwahaha
"
);
}
catch
(IOException e)
{
System.out.println(
"
I've never seen println fail!
"
);
}
}
}
第二個程序:
1
public
class
Arcane2
{
2
public
static
void
main(String[] args)
{
3
try
{
4
//
you have noting nice to say
5
}
catch
(Exception e)
{
6
System.out.println(
"
this can't happen
"
);
7
}
8
}
9
}
第三個程序:
interface
Type1
{
void
f()
throws
CloneNotSupportedException;
}
interface
Type2
{
void
f()
throws
InterruptedException;
}
interface
Type3
extends
Type2,Type1
{}
public
class
Arcane3
implements
Type3
{
public
void
f()
{
System.out.println(
"
hello lsbwahaha
"
);
}
public
static
void
main(String[] args)
{
Type3 t3
=
new
Arcane3();
t3.f();
}
}
分析第一個程序:
看起來應該會打印出hello lsbwahaha,這個程序不能編譯,因為pringln犯法沒有會拋出任何受檢查異常,
而IOException 卻正是一個受檢查異常。
語言規范中描述:如果一個catch子句要捕獲一個類型為E的受檢查異常,而其相對應的try子句不能拋出E的某種子類型的異常,
那么這就是一個編譯期錯誤。
分析第二個程序:
基于第一個程序,那么第二個程序應該不可以編譯,但是它卻可以。它之所以可以編譯,是因為它唯一的catch子句檢查了Exception
捕獲Exception或Throwable的catch子句是合法的,不管于其相對應的try子句的內容為何。 這個程序什么都不會打印。
分析第三個程序:
看起來它也不能編譯。 如果它能編譯,那是為什么呢?
結果居然能編譯通過。。。。 這個到底是為什么呢?、、、、、、、
Type3 中 因為每一個接口都限制了方法f可以拋出的受檢查異常集合。一個方法可以拋出的受檢查異常集合是它所適用的所有類型聲明
要拋出的受檢查異常交集,而不是并集。
posted on 2009-04-07 20:51
胡鵬
閱讀(199)
評論(0)
編輯
收藏
所屬分類:
java基礎
新用戶注冊
刷新評論列表
只有注冊用戶
登錄
后才能發表評論。
網站導航:
博客園
IT新聞
Chat2DB
C++博客
博問
管理
相關文章:
java的4種Reference探討
理解java中的ThreadLocal
Concurrent學習—Executor框架
TrueZIP使用過程中遇到的問題記錄
antlr簡介
責任鏈中:但個中的處理
用linkList實現LRU算法
java collection framework 的一些比較使用的記錄
讀《effective java》第二版,實用一,遇到多個構造器參數時要考慮用構造器
java中關鍵字volatile的含義(轉)
Powered by:
BlogJava
Copyright © 胡鵬
導航
BlogJava
首頁
新隨筆
聯系
聚合
管理
<
2009年4月
>
日
一
二
三
四
五
六
29
30
31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
1
2
3
4
5
6
7
8
9
統計
隨筆 - 93
文章 - 0
評論 - 48
引用 - 0
常用鏈接
我的隨筆
我的評論
我的參與
最新評論
留言簿
(3)
給我留言
查看公開留言
查看私人留言
隨筆分類
android(4)
(rss)
hibernate(9)
(rss)
J2EE (10)
(rss)
java基礎(32)
(rss)
js,html,css(10)
(rss)
linux(1)
(rss)
spring(2)
(rss)
工具 and 軟件(9)
(rss)
敏捷(3)
(rss)
數據庫(6)
(rss)
數據結構(6)
(rss)
生活記事(5)
(rss)
設計模式(2)
(rss)
讀《effective java》筆記(3)
(rss)
隨筆檔案
2012年11月 (1)
2012年10月 (2)
2012年9月 (1)
2012年3月 (1)
2012年2月 (1)
2011年12月 (1)
2011年11月 (1)
2011年10月 (4)
2011年7月 (1)
2011年6月 (1)
2011年5月 (2)
2011年3月 (1)
2011年1月 (2)
2010年12月 (1)
2010年11月 (4)
2010年10月 (2)
2010年8月 (2)
2010年7月 (1)
2010年2月 (2)
2009年12月 (3)
2009年11月 (5)
2009年8月 (1)
2009年7月 (5)
2009年6月 (1)
2009年5月 (7)
2009年4月 (39)
agile
敏捷開發中高質量 Java 代碼開發實踐
搜索
最新評論
1.?re: Eclipse啟動無響應 停留在Loading workbench狀態
非常有用,感謝分享
--薩瑟蘭
2.?re: Eclipse啟動無響應 停留在Loading workbench狀態[未登錄]
果然靠譜
好使
謝謝博主
--Gavin
3.?re: Eclipse啟動無響應 停留在Loading workbench狀態
遇到同樣的問題,真的可以解決
--861625788@qq.com
4.?re: java獲取qq郵箱中的好友列表
樓主,可以給我發一份源碼嗎?最近在弄這個總是搞不好,想參照一下 謝謝
945982766@qq.com
--aixiaoyan1111
5.?re: 可輸入的下拉框222ComboBox(Select加Input)
222
--22
閱讀排行榜
1.?HTML——網頁中嵌入 media play 和 real play 代碼(12911)
2.?js——網頁全屏顯示(9219)
3.?Eclipse啟動無響應 停留在Loading workbench狀態(6455)
4.?java中創建自己的Tuple(6404)
5.?可輸入的下拉框ComboBox(Select加Input)(5091)
評論排行榜
1.?java獲取qq郵箱中的好友列表(23)
2.?Eclipse啟動無響應 停留在Loading workbench狀態(7)
3.?玩個游戲:下一周如果每天有30分鐘時間有空可以做什么(6)
4.?在繼承中的 靜態方法調用注意(6)
5.?java容器學習(2)
主站蜘蛛池模板:
另类图片亚洲校园小说区
|
9久热这里只有精品免费
|
亚洲精品国产电影
|
91免费在线视频
|
亚洲国产综合在线
|
国产91久久久久久久免费
|
久久久WWW免费人成精品
|
亚洲成人一级电影
|
亚洲av无码成人精品区
|
99精品国产成人a∨免费看
|
亚洲AV无码之国产精品
|
亚洲日本中文字幕区
|
四虎永久免费地址在线观看
|
亚欧日韩毛片在线看免费网站
|
亚洲综合精品成人
|
亚洲啪啪AV无码片
|
免费羞羞视频网站
|
啦啦啦完整版免费视频在线观看
|
亚洲av无码兔费综合
|
亚洲综合熟女久久久30p
|
国产成人免费网站
|
a级精品九九九大片免费看
|
亚洲av无码专区国产不乱码
|
亚洲视频免费在线播放
|
亚洲熟妇少妇任你躁在线观看无码
|
国产精品免费观看久久
|
免费无码黄网站在线看
|
日本一区二区三区免费高清在线
|
中文字幕亚洲精品资源网
|
4338×亚洲全国最大色成网站
|
成年女人看片免费视频播放器
|
色欲国产麻豆一精品一AV一免费
|
99热在线精品免费全部my
|
中文字幕a∨在线乱码免费看
|
亚洲精品中文字幕无码AV
|
亚洲综合区小说区激情区
|
国产男女猛烈无遮挡免费视频
|
亚洲一区二区三区影院
|
国产乱弄免费视频
|
少妇高潮太爽了在线观看免费
|
19禁啪啪无遮挡免费网站
|