第5章異常處理(13級)_第1頁
第5章異常處理(13級)_第2頁
第5章異常處理(13級)_第3頁
第5章異常處理(13級)_第4頁
第5章異常處理(13級)_第5頁
已閱讀5頁,還剩55頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第5章異常處理錯誤與異常致命性的錯誤(Error):如果程序進入了死循環(huán),或遞歸無法結(jié)束,或內(nèi)存溢出,這些現(xiàn)象稱為錯誤。錯誤只能在編程階段解決,運行時程序本身無法解決,只能依靠其它程序干預,否則會一直處于非正常狀態(tài)。Java程序不做處理。非致命性的異常(Exception)

:如果運算時除數(shù)為0,或操作數(shù)超出數(shù)據(jù)范圍,或打開一個文件時發(fā)現(xiàn)文件不存在,或欲裝入的類文件丟失,或網(wǎng)絡(luò)連接中斷等,這些現(xiàn)象稱為異常。在源程序中加入異常處理代碼,當程序運行中出現(xiàn)異常時,由異常處理代碼調(diào)整程序運行方向,使程序仍可繼續(xù)運行直至正常結(jié)束。什么是異常在程序運行過程中發(fā)生的、會打斷程序正常執(zhí)行的事件稱為異常(Exception),也稱為例外。例如,零用作除數(shù)(產(chǎn)生算術(shù)異常ArithmeticException)、

在指定的磁盤上沒有要打開的文件(產(chǎn)生文件未找到異常

FileNotFoundException)

數(shù)組下標越界(產(chǎn)生數(shù)組下標越界異常

ArrayIndexOutOfBoundsException)等常見異常importjava.util.*;classExample{publicstaticvoidmain(String[]args){intage;Scannersc=newScanner(System.in);age=sc.nextInt();System.out.println("年齡是"+age+"歲");System.out.println("程序結(jié)束");}}

RuntimeException(運行時異常):Java虛擬機在運行時生成的異常,如被0除等系統(tǒng)錯誤、數(shù)組下標超范圍等,其產(chǎn)生比較頻繁,處理麻煩,對程序可讀性和運行效率影響太大。因此由系統(tǒng)檢測,用戶可不做處理,系統(tǒng)將它們交給缺省的異常處理程序(當然,必要時,用戶可對其處理)。CheckedException(檢查型異常):一般程序中可預知的問題,其產(chǎn)生的異常可能會帶來意想不到的結(jié)果,因此Java編譯器要求Java程序必須捕獲或聲明所有的非運行時異常。異常的分類importjava.io.*;publicclassaaa{publicstaticvoidmain(String[]args){inta;a=(int)System.in.read();System.out.println("a的值是"+a);}}檢查型異常實例無法通過編譯異常與異常類Java中定義了很多異常類。每個異常類都代表了一種運行錯誤。類中包含了該運行錯誤的信息和處理錯誤的方法等內(nèi)容。異常類的層次為內(nèi)部錯誤,因此在正常情況下不期望用戶的程序捕獲它們Java虛擬機在運行時生成的異常,由系統(tǒng)檢測,用戶可不做處理,系統(tǒng)將它們交給缺省的異常處理程序。程序中可預知的問題,可能會帶來意想不到的結(jié)果,Java程序必須捕獲或聲明所有的非運行時異常。異常類的層次算術(shù)異常類型強制轉(zhuǎn)換異??罩羔槷惓?shù)組負下標異常數(shù)組下標越界異常下標越界異常ArithmeticException:算術(shù)異常

ArrayIndexOutOfBandsException:數(shù)組下標越界異常

ArrayStoreException:數(shù)組存儲異常

IOException:輸入輸出異常

FileNotFoundException:文件未找到異常

NullPointerException:空指針異常

ClassCastException:類型強制轉(zhuǎn)換異常

如果使用了能夠產(chǎn)生異常的方法而沒有捕獲和處理,程序?qū)⒉荒芡ㄟ^編譯。

常見的異常當程序試圖訪問一個空對象(即沒有實例化的對象)中的變量或方法,或一個空數(shù)組中的元素時,會發(fā)生該異常。如:

Strings;System.out.println(s.length());inta[];a[0]=0;

空指針異常NullPointerException當進行類型強制轉(zhuǎn)換時,對于不能進行的轉(zhuǎn)換操作,會發(fā)生該異常。例如:

Objectobj=newObject();

Strings=(String)obj;類型強制轉(zhuǎn)換異常ClassCastException6.2異常處理機制

捕獲異常聲明拋出異常throwsTry-catch消極的處理方式積極的處理方式捕獲異常捕獲異常是通過try-catch-finally語句實現(xiàn)的。

tryfinallycatch要監(jiān)控的程序語句包含在此塊中以合理的方式捕獲和處理異常釋放資源等異常的捕獲與處理try{〈語句1〉}catch(ExceptionType1e)

{〈語句2〉}……finally

{〈語句3〉}接受監(jiān)視的程序塊,在此區(qū)域內(nèi)發(fā)生的異常,由catch中指定的程序處理;處理異常要處理的異常種類和標識符一定要執(zhí)行,是異常處理的統(tǒng)一出口,可以省略。捕獲異常

try語句

捕獲異常的第一步就是用try{…}語句指定了一段代碼,該段代碼就是一次捕獲并處理異常的范圍。在執(zhí)行過程中,該段代碼可能會產(chǎn)生并拋棄一個或多個異常,因此,它后面的catch語句進行捕獲時也要做相應(yīng)的處理。處理異常

catch語句每個try語句必須伴隨一個或多個catch語句,用于捕獲try代碼塊所產(chǎn)生的異常并做相應(yīng)的處理。catch語句有一個形式參數(shù),用于指明其所能捕獲的異常類型,運行時系統(tǒng)通過參數(shù)值把被拋棄的異常對象傳遞給catch語句。要根據(jù)具體的情況來選擇catch語句的異常處理類型,一般應(yīng)該按照try代碼塊中異常可能產(chǎn)生的順序及其真正類型進行捕獲和處理,盡量避免選擇最一般的類型作為catch語句中指定要捕獲的類型。也可以用一個catch語句處理多個異常類型,這時它的異常類型應(yīng)該是這多個異常類型的父類,但這種方式使得在程序中不能確切判斷異常的具體類型。統(tǒng)一出口

finally語句

捕獲異常的最后一步是通過finally語句為異常處理提供一個統(tǒng)一的出口,使得在控制流程轉(zhuǎn)到程序的其他部分以前,能夠?qū)Τ绦虻臓顟B(tài)作統(tǒng)一的管理。

無論try所指定的程序塊中拋出或不拋出異常,也無論catch語句的異常類型是否與所拋出的異常的類型一致,finally所指定的代碼都要被執(zhí)行,它提供了統(tǒng)一的出口。通常在finally語句中可以進行資源的清除工作,如關(guān)閉打開的文件等。importjava.util.*;classExample{publicstaticvoidmain(String[]args){intage;Scannersc=newScanner(System.in); try{age=sc.nextInt();System.out.println("年齡是"+age+"歲");

}catch(InputMismatchExceptione){System.out.println("輸入的數(shù)據(jù)不匹配");

}finally{System.out.println("程序結(jié)束");}}}異常的產(chǎn)生、捕獲和處理importjava.util.*;classExample{publicstaticvoidmain(String[]args){intage;Scannersc=newScanner(System.in);

age=sc.nextInt();System.out.println("年齡是"+age+"歲");System.out.println("程序結(jié)束");}}異常類(Exception)的常用方法Exception()

構(gòu)造詳細消息為null的新異常。Exception(String

message)構(gòu)造帶指定詳細消息的新異常。toString()方法顯示的異常信息

java.lang.ArithmeticException:/byzerogetMessage()方法顯示的異常信息

/byzeroprintStackTrace()方法顯示的異常信息

java.lang.ArithmeticException:/byzero

atExceptionDemo.main(basdf.java:8)異常處理實例classExceptionRaised{

publicExceptionRaised(){}

publicintcalculate(intoperand1,intoperand2){intresult=operand1/operand2;returnresult;}

publicstaticvoidmain(String[]args){ExceptionRaisedobj=newExceptionRaised();intresult=obj.calculate(9,0);System.out.println(result);}}!在運行時發(fā)生的錯誤

解決方案一classExceptionRaised{

publicExceptionRaised(){}publicintcalculate(intoperand1,intoperand2){intresult=0;try{ result=operand1/operand2;}catch(Exceptione){System.err.println("發(fā)生異常:"+e.toString());e.printStackTrace();}returnresult;}

publicstaticvoidmain(String[]args){ExceptionRaisedobj=newExceptionRaised();intresult=obj.calculate(9,0);System.out.println(result);}}調(diào)用異常類的方法指明catch可以捕獲并處理的異常類型classTest{ publicintdevide(intx,inty) { returnx/y; }

}classTestException

{ publicstaticvoidmain(Stringargs[]) { inti;

try{ Testt1=newTest(); i=t1.devide(3,0); System.out.println(i); }

catch(ArithmeticExceptione) { System.out.println(e.getMessage()); System.out.println("0做除數(shù)!"); } }}/byzero0做除數(shù)!實戰(zhàn)

閱讀下列程序代碼,分析程序可能產(chǎn)生的異常情況,捕獲并處理異常。publicclassExceptionDemo{intarray[]={1,2,3,4,5,6,7,8,9,0};publicvoidexceptest(intj){ for(inti=0;i<j;i++) {System.out.println("array["+i+"]="+array[i]);} }publicstaticvoidmain(Stringargs[]){ExceptionDemoex=newExceptionDemo();ex.exceptest(11);}}

importjava.util.*;classExample{publicstaticvoidmain(String[]args){intage;Scannersc=newScanner(System.in); try{age=sc.nextInt();System.out.println("年齡是"+age+"歲");

}catch(InputMismatchExceptione){System.out.println("輸入的數(shù)據(jù)不匹配");

}System.out.println("程序結(jié)束");}}是否有其他異常?6.3人為拋出異常我們在程序中也可以生成自己的異常對象,也就是異常可以不是出錯產(chǎn)生,而是人為地拋出。通過throw語句實現(xiàn):ArithmeticExceptione=newArithmeticException();throwe;

thrownewArithmeticException();注意:拋出的異常必須是Throwable或其子類的實例。throw語句的一般形式一般的形式是:

thrownew異常類();new運算符被用來生成一個異常類的實例對象。例如:

thrownewArithmeticException();人為拋出異常的實例publicclassThrowDemo{publicstaticvoidmain(Stringargs[]){ intx=125; try{if(x%3!=0)thrownewArithmeticException();}catch(Exceptione){System.out.println(“捕獲異?!?e.getMessage());

System.out.println(“不能被3整除”);

}System.out.println(“程序結(jié)束”);}}手動拋出異常如果整數(shù)不能被3整除,則拋出異常。importjava.util.*;classExample{publicstaticvoidmain(String[]args){intage;Scannersc=newScanner(System.in); try{age=sc.nextInt();System.out.println("年齡是"+age+"歲");

}catch(InputMismatchExceptione){System.out.println("輸入的數(shù)據(jù)不匹配");

}System.out.println("程序結(jié)束");}}是否有其他異常?importjava.util.*;classExample{publicstaticvoidmain(String[]args){intage;Scannersc=newScanner(System.in);

try{age=sc.nextInt();

if(age<0) thrownewException();System.out.println("年齡是"+age+"歲");}

catch(InputMismatchExceptione){System.out.println("輸入的數(shù)據(jù)不匹配");}

catch(Exceptione){System.out.println("輸入的數(shù)據(jù)應(yīng)該大于0");}System.out.println("程序結(jié)束");}}多重catch塊一段代碼可能會生成多個異常當引發(fā)異常時,按順序查看每個catch語句,并執(zhí)行第一個類型與異常類型匹配的語句。執(zhí)行其中的一條catch語句之后,其他的catch語句將被忽略。try{…….}catch(ArrayIndexOutOfBoundsExceptione){……}catch(Exceptione){……}異常類的層次catch(ArrayIndexOutOfBoundsExceptione)catch(IndexOutOfBoundsExceptione)catch(RuntimeExceptione)catch(Exceptione)catch(Throwablee)算術(shù)異常類型強制轉(zhuǎn)換異??罩羔槷惓?shù)組負下標異常數(shù)組下標越界異常下標越界異常多重catch塊try{…...}catch(Exceptione){……}catch(ArrayIndexOutOfBoundsExceptione){……}

×使用多重catch語句時,異常子類一定要位于異常父類之前。importjava.util.*;classExample{publicstaticvoidmain(String[]args){intage;Scannersc=newScanner(System.in);

try{age=sc.nextInt();

if(age<0) thrownewException();System.out.println("年齡是"+age+"歲");}

catch(InputMismatchExceptione){System.out.println("輸入的數(shù)據(jù)不匹配");}

catch(Exceptione){System.out.println("輸入的數(shù)據(jù)應(yīng)該大于0");}System.out.println("程序結(jié)束");}}練習classExceptionExample{publicstaticvoidmain(String[]args){ inta=8,b=2,c=0; try{ c=a/(b-2); System.out.println("計算結(jié)果:"+c); } catch(ArithmeticExceptionarithmeticException){ System.out.println("捕獲了一個除零異常"); } catch(Exceptionexception){ System.out.println("捕獲了一個異常"); }}}運行結(jié)果?下面程序可能有哪些異常?classTry2{publicstaticvoidmain(Stringargs[]){inti=0,a[]={5,6,7,8};for(i=0;i<=4;i++){System.out.print("a["+i+"]/"+i+"="+(a[i]/i));}System.out.println("結(jié)束!");

}}classTry2{publicstaticvoidmain(Stringargs[]){inti=0;inta[]={5,6,7,8};for(i=0;i<=4;i++){try{System.out.print("a["+i+"]/"+i+"="+(a[i]/i));}

catch(ArrayIndexOutOfBoundsExceptione){System.out.print("捕獲數(shù)組下標越界異常!");}

catch(ArithmeticExceptione){System.out.print("捕獲算術(shù)異常!");}

catch(Exceptione){System.out.print("捕獲"+e.getMessage()+"異常!");}

finally{System.out.println("i="+i);}}System.out.println("結(jié)束!");}}捕獲算術(shù)異常!i=0a[1]/1=6i=1a[2]/2=3i=2a[3]/3=2i=3捕獲數(shù)組下標越界異常!i=4結(jié)束!finally塊try、catch和finally塊的執(zhí)行流程finally子句可以保證,無論try塊中是否拋出異常,finally塊中的語句都會被執(zhí)行到,這樣可以對程序的狀態(tài)作統(tǒng)一的管理。finally語句對增強程序的魯棒性非常重要。try塊finally塊catch塊無異常異常finally塊示例classSystemException{publicstaticvoidmain(Stringargs[]){inta=68;intb=0;

try{System.out.println(a/b);//0用作了除數(shù)

}

catch(ArithmeticExceptione){System.out.println("0用作了除數(shù)");return;}finally{System.out.println("程序結(jié)束");}}}思考:如果沒有finally語句,程序運行的結(jié)果有何不同?try-catch-finally應(yīng)注意的問題每個try語句至少有一個catch語句對應(yīng),catch語句的排列順序應(yīng)該從特殊到一般??梢杂靡粋€catch語句處理多個異常類型,這時它的異常類型參數(shù)應(yīng)該是多個異常類型的父類。try-cacth-finally語句中間不能插入其他語句異常處理機制

捕獲異常聲明拋出異常throwsTry-catch消極的處理方式積極的處理方式6.4聲明異常處理異常處理異??赡軙е庐惓ypecalledmethod(…)

throwsexception-list{//bodyofmethod}被調(diào)用的方法typecallingmethod(…){try{…

calledmethod(…);…}catch(Exceptione){…}}調(diào)用方法防止被調(diào)用的方法出現(xiàn)異常并處理異常

如果在一個方法中生成了異常,但是該方法并不處理它產(chǎn)生的異常,而是沿著調(diào)用層次向上傳遞,由調(diào)用它的方法來處理這些異常,叫聲明異常。通常的情況是在該方法中并不確切知道該如何對這些異常進行處理,比如FileNotFoundException類異常,它由FileInputStream的構(gòu)造方法產(chǎn)生,但在其構(gòu)造方法中并不清楚如何處理它,是終止程序的執(zhí)行還是新生成一個文件,這需要由調(diào)用它的方法來處理。聲明異常

聲明異常的方法:類型方法名([參數(shù)表])throws異常列表

聲明異常說明該方法不對這些異常進行處理,拋棄它們。throws子句中可以同時指明多個異常。需要強調(diào)的是:對于非運行時異常,程序中必須要作處理,或者捕獲,或者聲明拋棄;而對于運行時異常,程序中則可不處理。importjava.io.*;publicclassaaa{publicstaticvoidmain(String[]args){inta;a=(int)System.in.read();System.out.println("a的值是"+a);}}實例throwsException實例classExceptionRaised{publicExceptionRaised(){}publicintcalculate(intoperand1,intoperand2){

intresult=operand1/operand2;returnresult;}publicstaticvoidmain(String[]args){ExceptionRaisedobj=newExceptionRaised();intresult=obj.calculate(9,0);System.out.println(result);}}解決方案一classExceptionRaised{publicExceptionRaised(){}publicintcalculate(intoperand1,intoperand2){intresult=0;try{ result=operand1/operand2;}catch(Exceptione){System.err.println("發(fā)生異常:"+e.toString());e.printStackTrace();}returnresult;}publicstaticvoidmain(String[]args){ExceptionRaisedobj=newExceptionRaised();intresult=obj.calculate(9,0);System.out.println(result);}}classExceptionRaised{publicExceptionRaised(){}publicintcalculate(intoperand1,intoperand2)throwsException{intresult=0;result=operand1/operand2; returnresult;}publicstaticvoidmain(String[]args){ ExceptionRaisedobj=newExceptionRaised();

try {intresult=obj.calculate(9,0); System.out.println(result); }

catch(Exceptione) {System.out.println("0不能做除數(shù)!"); }}}解決方案二解決方案三classExceptionRaised{publicExceptionRaised(){}publicintcalculate(intoperand1,intoperand2)throwsException{intresult=0;result=operand1/operand2; returnresult;

} publicstaticvoidmain(String[]args)throwsException{ ExceptionRaisedobj=newExceptionRaised(); intresult=obj.calculate(9,0); System.out.println(result); }}用throws聲明拋棄異常在異常被拋出的過程中,任何方法都可以捕獲異常并進行相應(yīng)的處理。如果所有的方法都選擇了拋出此異常,

最后JVM將捕獲它,輸出相關(guān)的錯誤信息,并終止程序的運行。publicmethod1(){intx;

try{x=System.in.read();

compute(x);}

catch(IOExceptionioe){System.out.println(“readerror”);}

catch(ArithmeticExceptione){System.out.println(“devidedby0”);}}publicintcompute(intx)throwsArithmeticException{intz=100/x;returnz;}method1compute異常異常拋出處理在方法內(nèi),可以是系統(tǒng)拋出異常,也可以用戶自己拋出異常(throw)。方法中拋出異常對象,可以自己處理(try-catch-finally),也可以聲明異常(throws)。調(diào)用方法可以處理被調(diào)用方法拋棄的異常,也可以繼續(xù)聲明異常。注意:一個方法被覆蓋時,覆蓋它的方法只能拋出相同的異?;虍惓5淖宇悾床荒軖伋鲂碌漠惓?。關(guān)于異常處理的說明練習fact方法的功能是求n!,階乘值是byte類型。當n!的值超過byte數(shù)據(jù)類型的范圍(Byte.MAX_VALUE)時,結(jié)果就會出錯,但系統(tǒng)并不產(chǎn)生異常,所以要程序員自己產(chǎn)生異常。在主方法中調(diào)用該方法。要求用三種方式進行異常處理fact方法自己處理fact方法不處理,主方法處理fact方法和主方法都不處理6.5用戶自定義異常類Java提供的內(nèi)置異常不能滿足程序需要怎么辦?那就自定義異常吧??!自定義異常類必須繼承自Throwable或Exception類,建議用Exception類。ThrowableErrorExceptionRuntimeException用戶自定義異常類用戶自定義異常類Exception異常類的構(gòu)造方法方法說明Exception()

創(chuàng)建新異常Exception(Stringmessage)用字符串參數(shù)message描述異常信息并創(chuàng)建新異常。自定義異常類的形式:classMyException

extendsException{……}6.5自定義異常類用戶自定義異常示例classMyExceptionextendsException{MyException(){ System.out.println("輸入的數(shù)據(jù)中含有非數(shù)字字符");}}例:將輸入的數(shù)字字符串轉(zhuǎn)化為對應(yīng)的整數(shù),如果輸入的字符串中含有非數(shù)字字符,則停止并顯示錯誤提示信息。自定義異常類用

例classMyExceptionTest{

publicstaticvoidmain(Stringargs[]){

intnum; charc; StringBuffers=newStringBuffer();

try{

while((c=(char)System.in.read())!='\n'){ if(c>='0'&&c<='9'){s.append(c);} else{thrownewMyException();} } }

catch(MyExceptione)

{… }

catch(Exceptione)

{…}

finally

{num=Integer.parseInt(s.toString());}

System.out.println(num);}}用戶自定義異常示例classMyExceptionextendsException{ publicMyException(Stringmessage) { super(message); }}用

例classTestMyException{

publicvoidregister(){Scannersc=newScanner(System.in);intnum;while(true){System.out.println("請輸入登記的人數(shù)"); num=sc.nextInt();try{ if(num<0)

thrownewMyException("人數(shù)不能為負值"); else {System.out.println("登記的人數(shù)為:"+num);

System.exit(0); }}catch(MyExceptione){System.out.println(e.getMessage());}}}

publicstaticvoidmain(Stringargs[]){

TestMyExceptionmy=newTestMyException();my.register();}}

例:計算兩個數(shù)之和,當任意一個數(shù)超出范圍(10~20)時,拋出自己的異常。構(gòu)造方法publicException();publicException(Strings);

可以接受字符串參數(shù)傳入的信息,該信息通

常是對該異常所對應(yīng)的錯誤的描述。publicclassNumRangeExceptionextendsException{publicNumRangeException(Stringmsg){super(msg);}publicclassNumRangeExceptionextendsExceptionpublicclassNumRangeExceptionextendsException{publicNumRangeException(Stringmsg){super(msg);}

publicstaticintCal(intn1,intn2){intanswer=-1;

try{if((n1<10)||(n1>20)||(n2<10)||(n2>20))

{NumRangeExceptione=newNumRangeException("Numbersnotwithinthespecifiedrange.");throwe;}elseanswer=n1+n2;}

catch(NumRangeExceptione){System.out.println(e.toString());}returnanswer;}}classExe{publicstaticvoidmain(Stringargs[]){intanswer; answer=NumRangeException.Cal(17,15);System.out.println(answer);answer=NumRangeException.Cal(17,25);System.out.println(answer);}}32NumRangeException:Numbersnotwithinthespecifiedrange.-1例:在定義銀行類時,若取錢數(shù)大于余額則作為異

常處理(InsufficientFundsException)。思路:產(chǎn)生異常的條件是余額少于取額,因此是否拋出異常

要先判斷該條件。確定產(chǎn)生異常的方法,應(yīng)該在取錢方法(withdrawal)

中產(chǎn)生異常InsufficientFundsException。處理異常安排在調(diào)用withdrawal的時候,因此

withdrawal方法要聲明異常,由上級方法捕獲并處理。要定義好自己的異常。自定義異常類實例publicclassInsufficientFundsExceptionextendsException{privateBankexcepbank;privatedoubleexcepAmount;

InsufficientFundsException(Bankba,doubledAmount){excepbank=ba;excepAmount=dAmount;}publicStringexcepMesagge(){Stringstr=“Thebalance”+excepbank.getbalance()+“Thewithdrawalwas”+excepAmount;returnstr;}}classBank{doublebalance;//余額

publicvoiddeposite(doubledAmount)//存錢

{if(dAmount>0.0)balance+=dAmount;}

publicvoidwithdrawal(doubledAmount)throwsInsufficientFundsException{//取錢

if(balance<dAmout){thrownewInsufficientFundsException(this,dAmount);}balance=balance-dAmount;}

publicdoublegetbalance()//獲取余額

{returnbalance;}}publicclassExceptionDemo{publicstaticvoidmain(Stringargs[]){try{Bankba=newBank();

ba.deposite(50);

ba.withdrawal(100);System.out.println(“Wi

溫馨提示

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

評論

0/150

提交評論