Java 2實用教程第6版PPT1第5章 異常_第1頁
Java 2實用教程第6版PPT1第5章 異常_第2頁
Java 2實用教程第6版PPT1第5章 異常_第3頁
Java 2實用教程第6版PPT1第5章 異常_第4頁
Java 2實用教程第6版PPT1第5章 異常_第5頁
已閱讀5頁,還剩66頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

學(xué)習(xí)目標(biāo)/Target了解什么是運行時異常和編譯時異常,能夠說出運行時異常和編譯時異常的特點了解異常的產(chǎn)生及處理,能夠說出處理異常的5個關(guān)鍵字了解異常的概念,能夠說出什么是異常掌握try...catch語句和finally語句的使用,能夠使用try…catch語句和finally語句處理異常學(xué)習(xí)目標(biāo)/Target掌握如何自定義異常,能夠編寫自定義異常類掌握throw關(guān)鍵字的使用,能夠使用throw關(guān)鍵字拋出異常掌握throws關(guān)鍵字的使用,能夠使用throws關(guān)鍵字拋出異常章節(jié)概述/

Summary盡管人人希望自己身體健康,處理的事情都能順利進行,但在實際生活中總會遇到各種狀況,比如感冒發(fā)燒,工作時電腦藍(lán)屏、死機等。同樣,在程序運行的過程中,也會發(fā)生各種異常狀況,例如,程序運行時磁盤空間不足、網(wǎng)絡(luò)連接中斷、加載的類不存在等。針對這種情況,Java語言引入了異常,以異常類的形式對這些非正常情況進行封裝,通過異常處理機制對程序運行時發(fā)生的各種問題進行處理。本章將對異常進行詳細(xì)講解。目錄/Contents010203什么是異常運行時異常和編譯時異常異常處理及語法04拋出異常05自定義異常什么是異常5.15.1什么是異常

先定一個小目標(biāo)!了解什么是異常,能夠說出Error類和Exception類區(qū)別5.1什么是異常Java中的異常是指Java程序在運行時可能出現(xiàn)的錯誤或非正常情況,比如在程序中試圖打開一個根本不存在的文件,在程序中除0等。異常是否出現(xiàn),通常取決于程序的輸入、程序中對象的當(dāng)前狀態(tài)以及程序所處的運行環(huán)境。程序拋出異常之后,會對異常進行處理。異常處理將會改變程序的控制流程,出于安全性考慮,同時避免異常程序影響到其他正常程序的運行,操作系統(tǒng)通常將出現(xiàn)異常的程序強行中止,并彈出系統(tǒng)錯誤提示。異常的概念5.1什么是異常案例演示下面通過一個案例認(rèn)識一下什么是異常,在本案例中,計算以0為除數(shù)的表達(dá)式,運行程序并觀察程序的運行結(jié)果。具體代碼如下所示。packagecom.itheima;publicclassExample01{ publicstaticvoidmain(String[]args){ intresult=divide(4,0);//調(diào)用divide()方法,第2個參數(shù)為0 System.out.println(result); } //下面的方法實現(xiàn)了兩個整數(shù)相除 publicstaticintdivide(intx,inty){ intresult=x/y;//定義一個變量result記錄兩個數(shù)相除的結(jié)果 returnresult;//將結(jié)果返回 }}5.1什么是異常案例運行結(jié)果運行代碼,控制臺顯示的運行結(jié)果如下圖所示。5.1什么是異常案例結(jié)果說明由上圖可知,程序發(fā)生了算術(shù)異常(ArithmeticException),提示運算時出現(xiàn)了被0除的情況。異常發(fā)生后,程序會立即結(jié)束,無法繼續(xù)向下執(zhí)行。5.1什么是異常Throwable類Java提供了大量的異常類,每一個異常類都表示一種預(yù)定義的異常,這些異常類都繼承自java.lang包下的Throwable類。Throwable類的繼承體系圖如下所示。5.1什么是異常Throwable類的子類由上圖中可知,Throwable類是所有異常類的父類,它有兩個直接子類Error類和Exception類,其中,Error類代表程序中產(chǎn)生的錯誤,Exception類代表程序中產(chǎn)生的異常。5.1什么是異常Throwable類的子類

Error類稱為錯誤類,它表示Java程序運行時產(chǎn)生的系統(tǒng)內(nèi)部錯誤或資源耗盡的錯誤,這類錯誤比較嚴(yán)重,僅靠修改程序本身是不能恢復(fù)執(zhí)行的。例如,使用java命令去運行一個不存在的類就會出現(xiàn)Error錯誤。

Exception類稱為異常類,它表示程序本身可以處理的錯誤,在Java程序中進行的異常處理,都是針對Exception類及其子類的。在Exception類的眾多子類中有一個特殊的子類——RuntimeException類,RuntimeException類及其子類用于表示運行時異常。Exception類的其他子類都用于表示編譯時異常。5.1什么是異常Throwable類的常用方法為了方便后面的學(xué)習(xí),接下來進一步了解Throwable類中的常用方法,具體如下。方法聲明功能描述StringgetMessage()返回異常的消息字符串StringtoString()返回異常的簡單信息描述voidprintStackTrace()獲取異常類名和異常信息,以及異常出現(xiàn)在程序中的位置,把信息輸出在控制臺。運行時異常與編譯時異常5.25.2運行時異常與編譯時異常

先定一個小目標(biāo)!了解運行時異常與編譯時異常,能夠說出運行時異常和編譯時異常之間的區(qū)別編譯時異常在實際開發(fā)中,經(jīng)常會在程序編譯時產(chǎn)生異常,這些異常必須要進行處理,否則程序無法正常運行,這種異常被稱為編譯時異常,也稱為checked異常。在Exception類中,除了RuntimeException類及其子類,Exception的其他子類都是編譯時異常。編譯時異常的特點是Java編譯器會對異常進行檢查,如果出現(xiàn)異常就必須對異常進行處理,否則程序無法通過編譯。5.2運行時異常與編譯時異常編譯時異常處理編譯時期的異常有兩種方式,具體如下:(1)使用try…catch語句對異常進行捕獲處理。(2)使用throws關(guān)鍵字聲明拋出異常,調(diào)用者對異常進行處理。5.2運行時異常與編譯時異常運行時異常另外還有一種異常是在程序運行時產(chǎn)生的,這種異常即使不編寫異常處理代碼,依然可以通過編譯,因此被稱為運行時異常,也稱為unchecked異常。RuntimeException類及其子類都是運行時異常。運行時異常的特點是在程序運行時由Java虛擬機自動進行捕獲處理的,Java編譯器不會對異常進行檢查。也就是說,當(dāng)程序中出現(xiàn)這類異常時,即使沒有使用try…catch語句捕獲或使用throws關(guān)鍵字聲明拋出,程序也能編譯通過,只是程序在運行過程中可能報錯。5.2運行時異常與編譯時異常運行時異常在Java中,常見的運行時異常有多種,具體如下所示。方法聲明功能描述ArithmeticException算術(shù)異常IndexOutOfBoundsException索引越界異常ClassCastException類型轉(zhuǎn)換異常NullPointerException空指針異常NumberFormatException數(shù)字格式化異常5.2運行時異常和編譯時異常運行時異常運行時異常一般是由程序中的邏輯錯誤引起的,在程序運行時無法恢復(fù)。例如,通過數(shù)組的索引訪問數(shù)組的元素時,如果索引超過了數(shù)組范圍,就會發(fā)生索引越界異常,代碼如下所示:

int[]arr=newint[5];

System.out.println(arr[6]);在上面的代碼中,由于數(shù)組arr的length為5,最大索引應(yīng)為4,當(dāng)使用arr[6]訪問數(shù)組中的元素就會發(fā)生數(shù)組索引越界的異常。5.2運行時異常和編譯時異常異常處理及語法5.35.3.1異常的產(chǎn)生及處理

先定一個小目標(biāo)!了解異常的產(chǎn)生及處理,能夠說出處理異常的5個關(guān)鍵字關(guān)鍵字描述在Java中,通過try、catch、finally、throw、throws這5個關(guān)鍵字進行異常對象的處理。具體說明如下所示。關(guān)鍵字功能描述try里面放置可能引發(fā)異常的代碼catch后面對應(yīng)異常類型和一個代碼塊,該關(guān)鍵字表明catch塊是用于處理這種類型的代碼塊finally主要用于回收在try代碼塊里打開的物理資源,如數(shù)據(jù)庫連接、網(wǎng)絡(luò)連接和磁盤文件。異常機制保證finally塊總是被執(zhí)行throw用于拋出一個實際的異常。它可以單獨作為語句來拋出一個具體的異常對象throws用在方法簽名中,用于聲明該方法可能拋出的異常5.3.1異常的產(chǎn)生及處理5.3.2try...catch語句

先定一個小目標(biāo)!掌握try...catch語句,能夠使用try...catch語句處理異常try...catch語句的語法格式為了使發(fā)生異常后的程序代碼正常執(zhí)行,程序需要捕獲異常并進行處理,Java提供了try…catch語句用于捕獲并處理異常。try…catch語句的語法格式如下所示:5.3.2try...catch語句try{代碼塊}catch(ExceptionTypee){

代碼塊}try...catch語句編寫注意事項(1)try代碼塊是必需的。(2)catch代碼塊和finally代碼塊都是可選的,但catch代碼塊和finally代碼塊至少要出現(xiàn)一個。(3)catch代碼塊可以有多個,但捕獲父類異常的catch代碼塊必須位于捕獲子類異常的catch代碼塊后面。(4)catch代碼塊必須位于try代碼塊之后。5.3.2try...catch語句try...catch語句異常處理流程5.3.2try...catch語句try...catch語句異常處理流程5.3.2try...catch語句由上圖可知,程序通過try語句捕獲可能出現(xiàn)的異常,如果try語句沒有捕獲到異常,則直接跳出try…catch語句塊執(zhí)行其他程序;如果在try語句中捕獲到了異常,則程序會自動跳轉(zhuǎn)到catch語句中找到匹配的異常類型進行相應(yīng)的處理。異常處理完畢,最后執(zhí)行其他程序語句。5.3.2try...catch語句案例演示下面通過一個案例使用try…catch語句對異常進行捕獲,在本案例中,計算以0為除數(shù)的表達(dá)式,運行程序并觀察程序的運行結(jié)果。具體代碼如下所示。publicclassExample02{publicstaticvoidmain(String[]args){

try{ intresult=divide(4,0);//調(diào)用divide()方法

System.out.println(result);

}catch(Exceptione){//對異常進行處理 System.out.println("捕獲的異常信息為:"+e.getMessage()); }

System.out.println("程序繼續(xù)向下執(zhí)行..."); }//下面的方法實現(xiàn)了兩個整數(shù)相除publicstaticintdivide(intx,inty){ intresult=x/y;//定義一個變量result記錄兩個數(shù)相除的結(jié)果 returnresult;//將結(jié)果返回}}5.3.2try...catch語句案例運行結(jié)果運行代碼,控制臺顯示的運行結(jié)果如下圖所示。注意:在try代碼塊中,發(fā)生異常語句后面的代碼是不會被執(zhí)行的,如上述案例中第5行代碼的打印語句就沒有執(zhí)行。5.3.3finally語句

先定一個小目標(biāo)!掌握finally語句,能夠在處理異常中使用finally語句finally語句的語法格式在程序中,有時候會希望一些語句無論程序是否發(fā)生異常都要執(zhí)行,這時就可以在try…catch語句后,加一個finally代碼塊。finally語句的語法格式如下所示:5.3.3finally語句try{代碼塊}catch(ExceptionTypee){

代碼塊}finally{

代碼塊}注意:finally代碼塊必須位于所有catch代碼塊之后。try…catch…finally語句的異常處理流程5.3.3finally語句try…catch…finally語句的異常處理流程5.3.3finally語句由上圖可知,在try…catch…finally語句中,不管程序是否發(fā)生異常,finally代碼塊中的代碼都會被執(zhí)行。需要注意的是,如果程序發(fā)生異常但是沒有被捕獲到,在執(zhí)行完finally代碼塊中的代碼之后,程序會中斷執(zhí)行。5.3.3finally語句案例演示下面通過一個案例演示try…catch...finally語句塊的使用。具體代碼如下所示。publicstaticvoidmain(String[]args){//下面的代碼定義了一個try…catch…finally語句用于捕獲異常

try{ intresult=divide(4,0);//調(diào)用divide()方法 System.out.println(result); }catch(Exceptione){//對捕獲到的異常進行處理 System.out.println("捕獲的異常信息為:"+e.getMessage());

return;//用于結(jié)束當(dāng)前語句 }finally{ System.out.println("進入finally代碼塊"); }

System.out.println("程序繼續(xù)向下…");}//下面的方法實現(xiàn)了兩個整數(shù)相除publicstaticintdivide(intx,inty){ intresult=x/y;//定義一個變量result記錄兩個數(shù)相除的結(jié)果 returnresult;//將結(jié)果返回}5.3.3finally語句案例運行結(jié)果運行代碼,控制臺顯示的運行結(jié)果如下圖所示。注意:如果在try...catch中執(zhí)行了System.exit(0)語句,finally代碼塊不再執(zhí)行。System.exit(0)表示退出當(dāng)前的Java虛擬機,Java虛擬機停止了,任何代碼都不能再執(zhí)行了。拋出異常5.45.4.1throws關(guān)鍵字

先定一個小目標(biāo)!掌握throws關(guān)鍵字,能夠使用throws關(guān)鍵字拋出異常throws關(guān)鍵字在實際開發(fā)中,大部分情況下我們會調(diào)用別人編寫的方法,并不知道別人編寫的方法是否會發(fā)生異常。針對這種情況,Java允許在方法的后面使用throws關(guān)鍵字聲明該方法有可能發(fā)生的異常,這樣調(diào)用者在調(diào)用方法時,就明確地知道該方法有異常,并且必須在程序中對異常進行處理,否則編譯無法通過。5.4.1throws關(guān)鍵字throws關(guān)鍵字的語法格式使用throws關(guān)鍵字拋出異常的語法格式如下所示:5.4.1throws關(guān)鍵字修飾符返回值類型方法名(參數(shù)1,參數(shù)2,…)throws異常類1,異常類2...{方法體}throws關(guān)鍵字需要寫在方法聲明的后面,throws后面還需要聲明方法中發(fā)生異常的類型。5.4.1throws關(guān)鍵字案例一演示下面通過一個案例演示throws關(guān)鍵字的使用。具體代碼如下所示。publicclassExample04{ publicstaticvoidmain(String[]args){ intresult=divide(4,2);//調(diào)用divide()方法 System.out.println(result); } //下面的方法實現(xiàn)了兩個整數(shù)相除,并使用throws關(guān)鍵字聲明拋出異常 publicstaticintdivide(intx,inty)throwsException{ intresult=x/y;//定義一個變量result記錄兩個數(shù)相除的結(jié)果 returnresult;//將結(jié)果返回 }}5.4.1throws關(guān)鍵字案例一運行結(jié)果運行代碼,控制臺顯示的運行結(jié)果如下圖所示。案例一運行結(jié)果分析在案例一中,第3行代碼調(diào)用divide()方法時傳入的第2個參數(shù)為2,程序在運行時不會發(fā)生被0除的異常。但是運行程序依然會提示錯誤,這是因為定義divide()方法時使用throws關(guān)鍵字聲明了該方法可能拋出的異常,調(diào)用者必須在調(diào)用divide()方法時對拋出的異常進行處理,否則就會發(fā)生編譯錯誤。5.4.1throws關(guān)鍵字5.4.1throws關(guān)鍵字案例二演示下面對案例一修改,使用try…catch語句處理divide()方法拋出異常。具體代碼如下所示。publicclassExample05{ publicstaticvoidmain(String[]args){ //下面的代碼定義了一個try…catch語句用于捕獲異常

try{ intresult=divide(4,2);//調(diào)用divide()方法 System.out.println(result); }catch(Exceptione){//對捕獲到的異常進行處理 e.printStackTrace();//打印捕獲的異常信息 } } //下面的方法實現(xiàn)了兩個整數(shù)相除,并使用throws關(guān)鍵字聲明拋出異常 publicstaticintdivide(intx,inty)throwsException{ intresult=x/y;//定義一個變量result記錄兩個數(shù)相除的結(jié)果 returnresult;//將結(jié)果返回 }}5.4.1throws關(guān)鍵字案例二運行結(jié)果運行代碼,控制臺顯示的運行結(jié)果如下圖所示。注意:使用throws關(guān)鍵字重拋異常時,如果程序發(fā)生了異常,并且上一層調(diào)用者也無法處理異常時,那么異常會繼續(xù)被向上拋出,最終直到系統(tǒng)接收到異常,終止程序執(zhí)行。5.4.1throws關(guān)鍵字案例三演示下面修改案例二將divide()方法拋出的異常繼續(xù)拋出。具體代碼如下所示。publicclassExample06{ publicstaticvoidmain(String[]args)throwsException{ intresult=divide(4,0);//調(diào)用divide()方法 System.out.println(result); } //下面的方法實現(xiàn)了兩個整數(shù)相除,并使用throws關(guān)鍵字聲明拋出異常 publicstaticintdivide(intx,inty)throwsException{ intresult=x/y;//定義一個變量result記錄兩個數(shù)相除的結(jié)果 returnresult;//將結(jié)果返回 }}5.4.1throws關(guān)鍵字案例三運行結(jié)果運行代碼,控制臺顯示的運行結(jié)果如下圖所示。案例三運行結(jié)果分析在案例三中,main()方法繼續(xù)使用throws關(guān)鍵字將Exception拋出,程序雖然可以通過編譯,但從上圖的運行結(jié)果可以看出,在運行時期由于沒有對“/byzero”的異常進行處理,最終導(dǎo)致程序終止運行。5.4.1throws關(guān)鍵字5.4.2throw關(guān)鍵字

先定一個小目標(biāo)!掌握throw關(guān)鍵字,能夠使用throw關(guān)鍵字拋出異常throw關(guān)鍵字在Java程序中,除了throws關(guān)鍵字,還可以使用throw關(guān)鍵字拋出異常。與throws關(guān)鍵字不同的是,throw關(guān)鍵字用于方法體內(nèi),拋出的是一個異常實例,并且每次只能拋出一個異常實例。5.4.2throw關(guān)鍵字throw關(guān)鍵字的語法格式使用throw關(guān)鍵字拋出異常的語法格式如下所示:5.4.2throw關(guān)鍵字throwExceptionInstance;在方法中,通過throw關(guān)鍵字拋出異常后,還需要使用throws關(guān)鍵字或try…catch對異常進行處理。如果throw拋出的是error、RuntimeException或它們的子類異常對象,則無需使用throws關(guān)鍵字或try…catch對異常進行處理。throw關(guān)鍵字拋出異常5.4.2throw關(guān)鍵字使用throw關(guān)鍵字拋出異常,通常有如下兩種情況。(1)當(dāng)throw關(guān)鍵字拋出的異常是編譯時異常時,第一種處理方式是在try代碼塊里使用throw關(guān)鍵字拋出異常,通過try代碼塊捕獲該異常;第二種處理方式是在一個有throws聲明的方法中使用throw關(guān)鍵字拋出異常,把異常交給該方法的調(diào)用者處理。(2)當(dāng)throw關(guān)鍵字拋出的異常是運行時異常時,程序既可以顯式使用try…catch捕獲并處理該異常,也可以完全不理會該異常,而把該異常交給方法的調(diào)用者處理。5.4.2throw關(guān)鍵字案例演示下面通過一個案例講解throw關(guān)鍵字的使用。具體步驟如下所示。//定義printAge()輸出年齡publicstaticvoidprintAge(intage)throwsException{if(age<=0){//對業(yè)務(wù)邏輯進行判斷,當(dāng)輸入年齡為負(fù)數(shù)時拋出異常 thrownewException("輸入的年齡有誤,必須是正整數(shù)!");}else{ System.out.println("此人年齡為:"+age);}}步驟一:定義方法printAge()輸出年齡,代碼如下所示:5.4.2throw關(guān)鍵字publicstaticvoidmain(String[]args){//下面的代碼定義了一個try…catch語句用于捕獲異常intage=-1;try{ printAge(age);}catch(Exceptione){//對捕獲到的異常進行處理 System.out.println("捕獲的異常信息為:"+e.getMessage());}}步驟二:定義main()方法,定義try…catch語句用于捕獲異常,在try{}中調(diào)用步驟一的方法。代碼如下所示:5.4.2throw關(guān)鍵字案例運行結(jié)果運行代碼,控制臺顯示的運行結(jié)果如下圖所示。自定義異常類5.55.5自定義異常類

先定一個小目標(biāo)!掌握自定義異常,能夠編寫自定義異常類自定義異常Java中定義了大量的異常類,雖然這些異常類可以描述編程時出現(xiàn)的大部分異常情況,但是在程序開發(fā)中有時可能需要描述程序中特有的異常情況。例如,兩數(shù)相除,不允許被除數(shù)為負(fù)數(shù)。此時,就無法使用Java提供的異常類表示該類異常,為了解決這個問題,Java允許用戶自定義異常類,自定義的異常類必須繼承自Exception或其子類。5.5自定義異常類自定義異常示例代碼5.5自定義異常類自定義異常類的示例代碼如下所示。publicclassDivideByMinusExceptionextendsException{ publicDivideByMinusException(){ super(); //調(diào)用Exception無參的構(gòu)造方法 } publicDivideByMinusException(Stringmessage){ super(message); //調(diào)用Exception有參的構(gòu)造方法 }}在實際開發(fā)中,如果沒有特殊的要求,自定義的異常類只需繼承Exception類,在構(gòu)造方法中使用super()語句調(diào)用Exception的構(gòu)造方法即可。5.5自定義異常類使用自定義的異常類,需要用到throw關(guān)鍵字。使用throw關(guān)鍵字在方法中聲明異常的實例對象,語法格式如下:throwException

異常對象5.5自定義異常類案例一演示修改5.4.2中案例的divide()方法,在divide()方法中判斷被除數(shù)是否為負(fù)數(shù),如果為負(fù)數(shù),就使用throw關(guān)鍵字在方法中向調(diào)用者拋出自定義的DivideByMinusException異常對象。具體步驟如下所示。publicclassDivideByMinusExceptionextendsException{ publicDivideByMinusException(){ super(); //調(diào)用Exception無參的構(gòu)造方法 } publicDivideByMinusException(Stringmessage){ super(message); //調(diào)用Exception有參的構(gòu)造方法 }} 步驟一:自定義異常類DivideByMinusException,代碼如下所示:5.5自定義異常類publicclassExample08{ publicstaticvoidmain(String[]args){ intresult=divide(4,-2);

System.out.println(result); } //下面的方法實現(xiàn)了兩個整數(shù)相除 publicstaticintdivide(intx,inty){ if(y<0){

thrownewDivideByMinusException("除數(shù)是負(fù)數(shù)");

} intresult=x/y;//定義一個變量result記錄兩個數(shù)相除的結(jié)果 returnresult;//將結(jié)果返回 }}步驟二:定義兩個整數(shù)相除的方法divide(),然后定義main()方法調(diào)用divide()方法,代碼如下所示:5.5自定義異常類案例一運行結(jié)果運行代碼,控制臺顯示的運行結(jié)果如下圖所示。案例一運行結(jié)果分析從上圖可以看出,程序在編譯時就發(fā)生了異常。因為在一個方法內(nèi)使用throw關(guān)鍵字拋出異常對象時,需要使用try…catch語句對拋出的異常進行處理,或者在divide()方法上使用throws關(guān)鍵字聲明拋出異常,由該方法的調(diào)用者負(fù)責(zé)處理。但是案例一沒有這樣做。為了解決上圖中出現(xiàn)的問題,對案例一進行修改,具體如下所示。5.4.1throws關(guān)鍵字5.5自定義異常類案例二演示修改案例一,在divide()方法上,使用throws關(guān)鍵字聲明該方法拋出DivideByMinusException異常,并在調(diào)用di

溫馨提示

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

評論

0/150

提交評論