《Java程序設(shè)計(jì)教程(第2版)》(賈珺)941-7教案 第17課異常和斷言(一)_第1頁
《Java程序設(shè)計(jì)教程(第2版)》(賈珺)941-7教案 第17課異常和斷言(一)_第2頁
《Java程序設(shè)計(jì)教程(第2版)》(賈珺)941-7教案 第17課異常和斷言(一)_第3頁
《Java程序設(shè)計(jì)教程(第2版)》(賈珺)941-7教案 第17課異常和斷言(一)_第4頁
《Java程序設(shè)計(jì)教程(第2版)》(賈珺)941-7教案 第17課異常和斷言(一)_第5頁
已閱讀5頁,還剩3頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

17第課異常和斷言(一)17第課異常和斷言(一)PAGE8異常和斷言(一)第課17PAGE5異常和斷言(一)第課17PAGE5

課題異常和斷言(一)課時(shí)2課時(shí)(90min)教學(xué)目標(biāo)知識技能目標(biāo):(1)了解異常的分類(2)掌握try-catch語句捕獲異常的語法格式(3)掌握throws聲明拋出異常的語法格式(4)掌握自定義異常類的語法格式思政育人目標(biāo):(1)通過講異常在Java編程中的運(yùn)用,培養(yǎng)學(xué)生的邏輯思維、辯證思維和創(chuàng)新思維能力;樹立學(xué)生實(shí)事求是、一絲不茍的科學(xué)精神;(2)引導(dǎo)學(xué)生運(yùn)用所學(xué)知識揭示生活中的奧秘,在實(shí)踐中深化認(rèn)識,達(dá)到學(xué)以致用的目的教學(xué)重難點(diǎn)教學(xué)重點(diǎn):掌握針對不同異常的處理方式教學(xué)難點(diǎn):熟悉捕獲異常通過哪幾種語句實(shí)現(xiàn)教學(xué)方法情景模擬法、問答法、討論法教學(xué)用具電腦、投影儀、多媒體課件、教材、文旌課堂APP教學(xué)設(shè)計(jì)第1節(jié)課:傳授新知(33min)第2節(jié)課:問題導(dǎo)入(5min)

傳授新知(35min)

課堂小結(jié)(3min)

作業(yè)布置(2min)教學(xué)過程主要教學(xué)內(nèi)容及步驟設(shè)計(jì)意圖第一節(jié)課課前任務(wù)【教師】布置課前任務(wù),和學(xué)生負(fù)責(zé)人取得聯(lián)系,讓其提醒同學(xué)通過文旌課堂APP或其他學(xué)習(xí)軟件,了解《幾個(gè)處理Java異常的有效方法》寫完代碼后請一定要檢查下,代碼中千萬不要有

printStackTrace()。因?yàn)閜rintStackTrace()只會(huì)在控制臺上輸出錯(cuò)誤的堆棧信息,他只適合于用來代碼調(diào)試。永遠(yuǎn)不要不處理異常,而是返回null,這樣異常就會(huì)被吞掉,無法獲取到任何失敗信息,會(huì)給日后的問題排查帶來巨大困難。【學(xué)生】提前上網(wǎng)觀看相關(guān)資料,熟悉教材通過課前的預(yù)熱,讓學(xué)生了解所學(xué)課程的大概內(nèi)容,激發(fā)學(xué)生的學(xué)習(xí)欲望考勤

(2min)【教師】使用文旌課堂APP進(jìn)行簽到【學(xué)生】按照老師要求簽到培養(yǎng)學(xué)生的組織紀(jì)律性,掌握學(xué)生的出勤情況互動(dòng)導(dǎo)入

(10min)【教師】創(chuàng)設(shè)情景,進(jìn)行案例分析、提問try{Filefile=newFile("path");FileInputStreamfis=newFileInputStream(file);Strings="inside";}catch(FileNotFoundExceptione){e.printStackTrace();System.out.println(s);}請問這段代碼中,為什么try代碼塊中聲明的變量不能在catch或者finally中被引用?【學(xué)生】思考、討論【教師】組織發(fā)言請小組組長總結(jié)全組結(jié)論,派代表進(jìn)行發(fā)言?!緦W(xué)生】發(fā)言通過互動(dòng)導(dǎo)入,引導(dǎo)學(xué)生思考,調(diào)動(dòng)學(xué)生的主觀能動(dòng)性傳授新知

(33min)【教師】通過大家的發(fā)言,引入新的知識點(diǎn),異常8.1.1異常分類1.概念:異常是程序在運(yùn)行過程中由于硬件設(shè)備問題、軟件設(shè)計(jì)錯(cuò)誤或缺陷等導(dǎo)致的程序錯(cuò)誤。2.異常類的層次結(jié)構(gòu)3.異常的分類:(1)Error:Error是程序運(yùn)行時(shí)出現(xiàn)的嚴(yán)重錯(cuò)誤,大多數(shù)是因?yàn)橄到y(tǒng)的內(nèi)部錯(cuò)誤或資源耗盡,不能在運(yùn)行過程中動(dòng)態(tài)地處理。Exception:Exception是程序本身可以處理的異常,這些異常通常在捕獲后可做適當(dāng)?shù)奶幚恚源_保程序繼續(xù)運(yùn)行。運(yùn)行時(shí)異常都是RuntimeException類及其子類異常,這些異常是不檢查異常,程序中可以選擇捕獲處理,也可以不處理。常見的運(yùn)行時(shí)異常類:非運(yùn)行時(shí)異常是指RuntimeException以外的異常,類型上都屬于Exception類及其子類,也可以是自定義的Exception異常。常見的非運(yùn)行時(shí)異常類:異常類常用的方法getMessage():返回一個(gè)字符串,表示異常的詳細(xì)信息。如果該異常對象沒有詳細(xì)信息,則返回null。printStackTrace():將異常和它的跟蹤情況打印到標(biāo)準(zhǔn)錯(cuò)誤流。printStackTrace(PrintStreams):將異常和它的跟蹤情況打印到指定打印流。toString():返回一個(gè)字符串,表示異常的簡短描述。8.1.2捕獲異常1.try-catch語句語法格式:try{ //可能發(fā)生異常的代碼塊}catch(異常類型異常對象名){ //處理異常的代碼塊}try子句用大括號“{}”指定了一段代碼,此段代碼在運(yùn)行過程中可能會(huì)生成一個(gè)或多個(gè)異常對象。try子句后面跟隨catch子句,用于處理try代碼塊中生成的異常對象。catch子句中的異常類型必須是Throwable類的子類,它指明了能夠捕獲的異常類型。此外,catch子句還給出了異常對象名,以便訪問該對象。【教師】演示例題8-1【學(xué)生】觀看程序運(yùn)行結(jié)果【教師】對程序進(jìn)行分析:從程序運(yùn)行結(jié)果可以看出,程序最后輸出提示信息“程序執(zhí)行結(jié)束!”,這說明使用try-catch語句捕獲并處理異常時(shí),不會(huì)因?yàn)楫a(chǎn)生的異常影響程序的執(zhí)行?!緦W(xué)生】聆聽、理解、記錄2.多重catch語句語法格式:【教師】通過演示例題8-2,使用多重catch語句,捕獲并處理數(shù)組下標(biāo)越界和被0除異?!緦W(xué)生】理解程序捕獲并處理了數(shù)組下標(biāo)越界異常3.finally語句finally語句用來為異常處理提供一個(gè)統(tǒng)一的出口。語法格式:try{ //可能發(fā)生異常的代碼塊}catch(異常類型異常對象){ //處理異常的代碼塊}……finally{ //最終處理代碼塊}(1)finally語句必須與try-catch語句配合使用,并出現(xiàn)try-catch語句之后。(2)不論是否捕獲到異常,finally語句中的代碼塊都會(huì)執(zhí)行?!窘處煛垦菔纠}8-3【學(xué)生】觀看程序運(yùn)行結(jié)果【教師】對程序進(jìn)行分析:在catch中設(shè)置異常的類型為Exception,并使用toString()方法輸出異常的具體類型InputMismatchException(輸入數(shù)據(jù)不匹配異常,即輸入的數(shù)據(jù)類型與定義的數(shù)據(jù)類型不匹配)。在不確定異常的類型時(shí)可以這樣使用?!緦W(xué)生】聆聽、理解、記錄【學(xué)生】聆聽、思考、理解、記憶通過講解,讓學(xué)生了解異常分類的層次結(jié)構(gòu)、常用方法、以及捕獲異常,通過講解和對案例的分析,掌握其語法格式第二節(jié)課問題導(dǎo)入

(5min)【教師】提問引出新知識點(diǎn)上一節(jié)我們學(xué)習(xí)了異常的分類、捕獲異常語句分類的語法格式。在編寫Java代碼的時(shí)候,我們經(jīng)常被教導(dǎo),要對異常的信息進(jìn)行處理,哪里該拋出異常。但是,更多的時(shí)候,我們只是模仿異常的拋出,卻不知道為什么要這樣拋異常(被catch了?被向上拋了?后面的代碼是否執(zhí)行了?)?!緦W(xué)生】思考、發(fā)言用問題導(dǎo)入,讓學(xué)生主動(dòng)探究創(chuàng)建對象的語法格式,激發(fā)學(xué)生的求知欲傳授新知

(30min)【教師】通過大家的發(fā)言,引入新的知識點(diǎn),拋出異常8.1.3拋出異常1.throws語句(1)throws聲明拋出異常的語法格式:返回值類型方法名(<參數(shù)列表>)throws異常列表{ …… //方法體}異常列表包含多個(gè)異常類型時(shí),中間使用逗號隔開。(2)使用throws拋出異常時(shí),應(yīng)注意事項(xiàng)如果方法聲明了拋出異常,必須在調(diào)用該方法時(shí)使用try-catch語句對異常列表中所有異常進(jìn)行處理。如果方法沒有聲明拋出異常,則無須使用try-catch語句強(qiáng)制處理。【教師】演示例題8-4,并對重要語句進(jìn)行分析【學(xué)生】聆聽、理解、記錄2.throw語句(1)throw語句用于方法體內(nèi),表示拋出一個(gè)異常對象。語法格式:thrownew異常類型(<異常信息>);new表示創(chuàng)建一個(gè)異常類對象,異常信息表示需要輸出的信息?!窘處煛垦菔纠}8-5,并對重要語句進(jìn)行分析【學(xué)生】聆聽、理解、記錄8.1.4自定義異常自定義的異常類必須繼承Throwable類,通常是繼承Exception類或它的子孫類,它在方法中通過throw拋出異常對象。語法格式:class自定義異常類名extends父類名{ …… //類體}【教師】演示例題8-6,并對重要語句進(jìn)行分析【學(xué)生】聆聽、理解、記錄【學(xué)生】聆聽、記錄、思考通過講解,讓學(xué)生了解拋出異常語句的語法格式,通過講解和對案例的分析,掌握異常的處理方式拓展訓(xùn)練

(5min)【教師】講解Java異常處理的小規(guī)則【學(xué)生】聆聽、記錄、思考學(xué)生可進(jìn)一步鞏固知識課堂小結(jié)

(3min)【教師】簡要總結(jié)本節(jié)課的要點(diǎn)本節(jié)課學(xué)習(xí)了異常的分類、捕獲異常、拋出異常語句的語法格式以及自定義異常的語法格式。希望大家通過本課的學(xué)習(xí)能熟練運(yùn)用其語法格式編寫簡單程序,并在課下多加練習(xí),鞏固所學(xué)知識。【學(xué)生】總結(jié)回顧知識點(diǎn)總結(jié)知識點(diǎn),鞏固印象作業(yè)布置

(2m

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論