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

下載本文檔

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

文檔簡介

1、第七章第七章 java異常處理異常處理 7.1異常簡介異常簡介 openfiles; if(thefilesopen) determine the lenth of the file; if(gotthefilelength) allocate that much memory; if(gotenoughmemory) read the file into memory; if(readfailed) errorcode = -1; else errorcode = -2; else errorcode = -3; else errorcode = -4; else errorcode = -

2、5; n缺點?缺點? n程序的可讀性差,維護困難。程序的可讀性差,維護困難。 n如何更改?如何更改? n在面向?qū)ο蟮木幊陶Z言中,用異常處理機制來統(tǒng)一在面向?qū)ο蟮木幊陶Z言中,用異常處理機制來統(tǒng)一 處理錯誤。處理錯誤。 7.1異常簡介異常簡介 try openthefile; determine its size; allocate that much memory; closethefile; catch(fileopenfailed) dosomething; catch(sizedeterminefailed) dosomething; catch(memoryallocatefailed)

3、 dosomething; catch(readfailed) dosomething; catch(fileclosefailed) dosomething; n1.什么是異常?什么是異常? 異常是指程序在執(zhí)行過程中出現(xiàn)程序本身沒有預(yù)料異常是指程序在執(zhí)行過程中出現(xiàn)程序本身沒有預(yù)料 到的情況,從而導(dǎo)致程序錯誤地結(jié)束。到的情況,從而導(dǎo)致程序錯誤地結(jié)束。 n2.什么是異常處理機制?什么是異常處理機制? 在程序運行過程中發(fā)生錯誤時,允許不按照正常的在程序運行過程中發(fā)生錯誤時,允許不按照正常的 路徑完成任務(wù),防止錯誤進一步惡化。路徑完成任務(wù),防止錯誤進一步惡化。 n3.異常處理過程?異常處理過程? 異

4、常是一個對象,它在程序運行時創(chuàng)建,并在發(fā)生異常是一個對象,它在程序運行時創(chuàng)建,并在發(fā)生 錯誤的位置被拋出錯誤的位置被拋出(throw),由一定的接收機制來接,由一定的接收機制來接 收并處理。收并處理。 7.1異常簡介異常簡介 n4.異常對象異常對象 異常對象是某個異常類的實例,異常對象是某個異常類的實例,java中已定義許中已定義許 多異常類,并允許程序員自己創(chuàng)建。每種異常類對多異常類,并允許程序員自己創(chuàng)建。每種異常類對 應(yīng)某一種或一類錯誤。應(yīng)某一種或一類錯誤。 n5.異常與異常與if語句的區(qū)別語句的區(qū)別 跳轉(zhuǎn)語句可能有足夠的信息指示在碰到某種問題時跳轉(zhuǎn)語句可能有足夠的信息指示在碰到某種問題時

5、 該如何解決,而異常必須將問題提交給一個更高級該如何解決,而異常必須將問題提交給一個更高級 的負責人。的負責人。 7.1異常簡介異常簡介 n6.為什么要有異常處理機制?為什么要有異常處理機制? 例如除法,知道有零分母的情況下,可以直接使用例如除法,知道有零分母的情況下,可以直接使用 if語句判斷,但若分母是一個比較復(fù)雜計算的結(jié)果,語句判斷,但若分母是一個比較復(fù)雜計算的結(jié)果, 難以預(yù)料,此時可以用異常處理。難以預(yù)料,此時可以用異常處理。 7.1異常簡介異常簡介 n1.java異常處理機制異常處理機制 njava的異常處理機制由的異常處理機制由try和和catch引導(dǎo),結(jié)構(gòu)如下:引導(dǎo),結(jié)構(gòu)如下:

6、7.2異常處理異常處理 try 可能產(chǎn)生異常的代碼段可能產(chǎn)生異常的代碼段; catch(異常類名異常類名1 對象名對象名1) 異常處理語句異常處理語句1 catch (異常類名異常類名2 對象名對象名2) 異常處理語句異常處理語句2 n2.try語句語句 try語句是用來包含有可能拋出異常的程序段,可以語句是用來包含有可能拋出異常的程序段,可以 是幾個簡單的語句,也可以是方法的調(diào)用。如:是幾個簡單的語句,也可以是方法的調(diào)用。如: 7.2異常處理異常處理 try function(); try int i=0; for(i=0; i100; i+) n2.catch語句語句 catch塊是專門用

7、來捕獲異常的地方。塊是專門用來捕獲異常的地方。try中的程序中的程序 段一旦遇到異常情況,則會轉(zhuǎn)到異常控制器段一旦遇到異常情況,則會轉(zhuǎn)到異??刂破鱟atch. catch的結(jié)構(gòu)如下:的結(jié)構(gòu)如下: 7.2異常處理異常處理 catch(異常類名異常類名 異常形式參數(shù)名異常形式參數(shù)名) 異常處理語句組;異常處理語句組; n3.執(zhí)行過程執(zhí)行過程 執(zhí)行時,程序用作為執(zhí)行時,程序用作為catch參數(shù)的異常類與參數(shù)的異常類與try塊中塊中 產(chǎn)生的異常對象比較,如果是該類的對象,就執(zhí)行產(chǎn)生的異常對象比較,如果是該類的對象,就執(zhí)行 該該catch語句塊,否則轉(zhuǎn)到下一個語句塊,否則轉(zhuǎn)到下一個catch語句塊語句塊

8、 7.2異常處理異常處理 throwable error exception threaddeath virtualmachineerror outofmemoryerror stackoverflowerror ioexception runtimeexception arithmeticexceptionnullpointerexceptionillegalargumentexception java中的異常類主要來源于派生自中的異常類主要來源于派生自object類的類的throwable類,類, 該類結(jié)構(gòu)如下:該類結(jié)構(gòu)如下: 7.2.1異常分類異常分類 n主要方法:主要方法: n(1)g

9、etmessage():用來返回用帶參數(shù)的構(gòu)造函數(shù)用來返回用帶參數(shù)的構(gòu)造函數(shù) 創(chuàng)建異常時的參數(shù)內(nèi)容。創(chuàng)建異常時的參數(shù)內(nèi)容。 n(2)tostring():用來返回異常所屬的異常類名及用來返回異常所屬的異常類名及 getmessage()能得到的內(nèi)容。能得到的內(nèi)容。 n(3)printstacktrace():在標準輸出設(shè)備上打印出在標準輸出設(shè)備上打印出 堆棧使用軌跡,即異常發(fā)生時已經(jīng)使用了哪些類。堆棧使用軌跡,即異常發(fā)生時已經(jīng)使用了哪些類。 n(4)fillinstacktrace():在異常重新拋出時使用。在異常重新拋出時使用。 7.2.1異常分類異常分類 7.2.1異常分類異常分類 ari

10、thmeticexception arraystoreexceptionarr classnotfoundexception illegalmonitorexception negativearraysizeexception nullpointerexception outofmemoryexception indexoutofboundsexception ioexception 類名類名 除數(shù)為除數(shù)為0引起的異常引起的異常 數(shù)組空間不夠引起的異常數(shù)組空間不夠引起的異常 未找到指定名字的類或接口引起的異常未找到指定名字的類或接口引起的異常 監(jiān)控器狀態(tài)出錯監(jiān)控器狀態(tài)出錯 數(shù)組長度是負數(shù)數(shù)組長

11、度是負數(shù) 程序試圖訪問空對象中的元素程序試圖訪問空對象中的元素 系統(tǒng)無法分配內(nèi)存引起異常系統(tǒng)無法分配內(nèi)存引起異常 數(shù)組下標越界數(shù)組下標越界 文件未找到其它讀文件異常文件未找到其它讀文件異常 異常處理異常處理 常見異常處理常見異常處理 n1.概念概念 java程序在運行時如果引發(fā)了一個可識別的錯誤,程序在運行時如果引發(fā)了一個可識別的錯誤, 就會產(chǎn)生一個與該錯誤相對應(yīng)的異常類的對象,這就會產(chǎn)生一個與該錯誤相對應(yīng)的異常類的對象,這 個過程稱為異常的拋出。個過程稱為異常的拋出。 n2.拋出異常的方法拋出異常的方法 (1)系統(tǒng)自動拋出的異常)系統(tǒng)自動拋出的異常 所有的系統(tǒng)定義的運行異常都可以由系統(tǒng)自動拋

12、所有的系統(tǒng)定義的運行異常都可以由系統(tǒng)自動拋 出。出。 7.2.2拋出異常拋出異常 n 除除0錯誤引起的異常錯誤引起的異常 7.2.2拋出異常拋出異常 public static void main(string a ) int a=0, b=5; system.out.print(b/a); n(2)語句拋出的異常)語句拋出的異常 用戶程序自定義的異常不可能依靠系統(tǒng)自動拋出,用戶程序自定義的異常不可能依靠系統(tǒng)自動拋出, 因為系統(tǒng)不知道錯誤在哪里。此時,必須借助于因為系統(tǒng)不知道錯誤在哪里。此時,必須借助于 throw語句拋出異常。語法格式:語句拋出異常。語法格式: 修飾符修飾符 返回類型返回類型

13、 方法名(參數(shù)列表)方法名(參數(shù)列表)throws 異常類名列表異常類名列表 7.2.2拋出異常拋出異常 n使用使用throw語句拋出異常時應(yīng)該注意的問題:語句拋出異常時應(yīng)該注意的問題: n一般這種拋出異常的語句應(yīng)該被定義為在滿足一般這種拋出異常的語句應(yīng)該被定義為在滿足 一定條件時執(zhí)行,例如把一定條件時執(zhí)行,例如把throw定義在定義在if語句分支中。語句分支中。 n含有含有throw語句的方法,應(yīng)該在方法頭定義中語句的方法,應(yīng)該在方法頭定義中 增加如下部分:增加如下部分: n throws 異常類名列表異常類名列表 7.2.2拋出異常拋出異常 7.2.2拋出異常拋出異常 class java

14、throw public static void main(string args) try throw new arithmeticexception(); catch(arithmeticexception ae) system.out.print(ae); 人為拋出異常例人為拋出異常例 人為拋出異常例人為拋出異常例 int dequeue() throws emptyqueueexception int data; if(isempty() throw(new emptyqueueexception(this); else dosomething; 7.2.2拋出異常拋出異常 n人為拋出

15、異常的作用?人為拋出異常的作用? 很多時候是可以預(yù)見異常的發(fā)生的,這時人為拋出很多時候是可以預(yù)見異常的發(fā)生的,這時人為拋出 異常,可使程序的邏輯清晰,功能正確。異常,可使程序的邏輯清晰,功能正確。 7.2.2拋出異常拋出異常 njava中異常處理結(jié)構(gòu):中異常處理結(jié)構(gòu): 7.3捕獲異常捕獲異常 try 可能產(chǎn)生異常的代碼段可能產(chǎn)生異常的代碼段; catch(異常類名異常類名1 對象名對象名1) 異常處理語句異常處理語句1 catch (異常類名異常類名2 對象名對象名2) 異常處理語句異常處理語句2 當程序產(chǎn)生異常,就應(yīng)捕獲它,并進行處理,處理過程當程序產(chǎn)生異常,就應(yīng)捕獲它,并進行處理,處理過程

16、 由由catch語句塊給出。語句塊給出。 n例子:例子: public class javathrow public static void main(string args) try throw new throwable(heres the throwable); catch(throwable e) system.out.println(caught throwable); system.out.println(e.getmessage: + e.getmessage(); system.out.println(e.tostring: + e.tostring(); n注意:注意: n如

17、果在使用能夠產(chǎn)生異常的方法而沒有捕獲和處理,如果在使用能夠產(chǎn)生異常的方法而沒有捕獲和處理, 將不能通過編譯。將不能通過編譯。 n捕獲的異常類型應(yīng)該和拋出的異常類型相同,當然捕獲的異常類型應(yīng)該和拋出的異常類型相同,當然 也可以用其父類。當滿足下面三個條件之一,異常也可以用其父類。當滿足下面三個條件之一,異常 對象將被吸收:對象將被吸收: 異常對象為異常對象為catch參數(shù)指定的異常類的對象參數(shù)指定的異常類的對象 異常對象為異常對象為catch參數(shù)指定的異常類的子類對象參數(shù)指定的異常類的子類對象 異常對象是實現(xiàn)了異常對象是實現(xiàn)了catch參數(shù)指定的接口的類對象參數(shù)指定的接口的類對象 7.3.1捕獲

18、異常捕獲異常 n因此,不能確定拋出的異常類型時,可以用因此,不能確定拋出的異常類型時,可以用 exception類。類。 n例:例: 7.3.1捕獲異常捕獲異常 public static void main(string args) try throw new ioexception(); catch(exception e) system.out.print(caught the exception); njava中經(jīng)常出現(xiàn)的中經(jīng)常出現(xiàn)的3種異常:算術(shù)異常、字符串越種異常:算術(shù)異常、字符串越 界和數(shù)組越界。例:界和數(shù)組越界。例: 7.3.1捕獲異常捕獲異常 public class jav

19、athrow public static void main(string args) char c; int a,b=0; int array = new int7; string s = hello; 7.3.1捕獲異常捕獲異常 try a = 1/b; catch(arithmeticexception ae) system.out.println(catch + ae); try array8=0; catch(arrayindexoutofboundsexception ai) system.out.println(catch + ai); try c = s.charat(8);

20、catch(stringindexoutofboundsexception se) system.out.print(catch + se); n有時希望把剛捕獲的異常重新拋出,尤其是在使用有時希望把剛捕獲的異常重新拋出,尤其是在使用 exception捕獲所有異常的時候,既然已經(jīng)得到了對當捕獲所有異常的時候,既然已經(jīng)得到了對當 前異常對象的引用,可以直接把它重新拋出:前異常對象的引用,可以直接把它重新拋出: 7.3.2重新拋出異常重新拋出異常 public class javathrow public static void f() throws exception system.out.p

21、rintln(the original exception in f(); throw new exception(thrown from f(); public static void main(string args) throws exception try f(); catch(exception e) system.out.println(caught in main); throw e; 7.3.2重新拋出異常重新拋出異常 nthe original exception in f() ncaught in main nexception in thread main java.la

22、ng.exception: thrown from f() nat javathrow.f(javathrow.java:7) nat javathrow.main(javathrow.java:12) n重新拋出一個異常將進入上一級結(jié)構(gòu)的異??刂破髦?,這重新拋出一個異常將進入上一級結(jié)構(gòu)的異??刂破髦?,這 一層控制器后的一層控制器后的catch將被忽略。被再次拋出的異常保留將被忽略。被再次拋出的異常保留 原異常的有關(guān)信息,上一層控制器可以從那個對象提取所原異常的有關(guān)信息,上一層控制器可以從那個對象提取所 有信息。有信息。 7.3.2重新拋出異常重新拋出異常 與異常的起源地對應(yīng),而不是重新拋出它

23、的位置對應(yīng)與異常的起源地對應(yīng),而不是重新拋出它的位置對應(yīng) 7.3.2重新拋出異常重新拋出異常 public class javathrow public static void f() throws exception system.out.println(origin + the exception in f(); throw new exception(thrown from f(); public static void g() throws throwable try f(); catch(exception e) system.out.println(inside g(), + e.

24、printstacktrace():); e.printstacktrace(); throw e; /throw e.fillinstacktrace(); public static void main(string args) throws throwable try g(); catch(exception e) system.out.println(caught in main, + e.printstacktrace():); e.printstacktrace(); n輸出結(jié)果:輸出結(jié)果: norigin the exception in f() ninside g(),e.pr

25、intstacktrace(): njava.lang.exception: thrown from f() nat javathrow.f(javathrow.java:8) nat javathrow.g(javathrow.java:14) nat javathrow.main(javathrow.java:26) ncaught in main,e.printstacktrace(): njava.lang.exception: thrown from f() nat javathrow.f(javathrow.java:8) nat javathrow.g(javathrow.jav

26、a:14) nat javathrow.main(javathrow.java:26) 7.3.2重新拋出異常重新拋出異常 n問題:若程序拋出了異常,用戶都想執(zhí)行一段固定問題:若程序拋出了異常,用戶都想執(zhí)行一段固定 代碼,應(yīng)該怎么做?代碼,應(yīng)該怎么做? n答案答案1:把這些代碼在每個異??刂破鞯淖詈髲?fù)制:把這些代碼在每個異??刂破鞯淖詈髲?fù)制 一份。一份。 n答案答案2:使用:使用finally關(guān)鍵詞。關(guān)鍵詞。 7.4finally關(guān)鍵詞關(guān)鍵詞 n1. finally關(guān)鍵詞的作用:關(guān)鍵詞的作用: n不管不管try塊中是否拋出了異常,不管異常是否被捕獲,塊中是否拋出了異常,不管異常是否被捕獲, 再

27、結(jié)束當前的異??刂平Y(jié)構(gòu)之前,系統(tǒng)都會執(zhí)行再結(jié)束當前的異??刂平Y(jié)構(gòu)之前,系統(tǒng)都會執(zhí)行finally 從句。從句。 n2. finally結(jié)構(gòu):結(jié)構(gòu): 7.4finally關(guān)鍵詞關(guān)鍵詞 try 可能產(chǎn)生異常的代碼段可能產(chǎn)生異常的代碼段; catch(異常類名異常類名1 對象名對象名1) 異常處理語句異常處理語句1 catch (異常類名異常類名2 對象名對象名2) 異常處理語句異常處理語句2 finally 總會執(zhí)行的語句;總會執(zhí)行的語句; 7.4finally關(guān)鍵詞關(guān)鍵詞 n3.例子:下面的程序執(zhí)行例子:下面的程序執(zhí)行finally子句的子句的3種情況種情況 v代碼不拋出任何異常代碼不拋出任何異

28、常 v代碼拋出一個代碼拋出一個catch子句能夠捕獲的異常子句能夠捕獲的異常 v代碼拋出一個不能被任何代碼拋出一個不能被任何catch子句捕獲的異常子句捕獲的異常 public class finallyworks static int count = 0; public static void main(string args) while(true) try system.out.print(count = +count+ : ); if(count+%2 = 0) throw new exception(); system.out.println(no exception); catch

29、(exception e) system.out.println(exception throw); finally system.out.println(finally clause executed); if(count =5) break; n程序運行結(jié)果:程序運行結(jié)果: ncount = 0 : exception throw nfinally clause executed ncount = 1 : no exception nfinally clause executed ncount = 2 : exception throw nfinally clause executed n

30、count = 3 : no exception nfinally clause executed ncount = 4 : exception throw nfinally clause executed 7.4finally關(guān)鍵詞關(guān)鍵詞 n異常處理并不一定要使用異常處理并不一定要使用java定義的異常類,用定義的異常類,用 戶可按照自己的要求自定義。戶可按照自己的要求自定義。 n定義自己的異常類必須從一個現(xiàn)有的異常類繼承,定義自己的異常類必須從一個現(xiàn)有的異常類繼承, 該該父類最好在含義上與新異常類近似父類最好在含義上與新異常類近似。 n例子:例子: 7.5自定義的異常自定義的異常 clas

31、s myexception extends exception public myexception() public myexception(string message) super(message); public class exceptioninherit public static void f() throws myexception system.out.println(“ throwing myexception); throw new myexception(the second constructor); public static void main(string ar

32、gs) try f(); n輸出結(jié)果:輸出結(jié)果: nthrowing myexception nmyexception: the second constructor nat exceptioninherit.f(exceptioninherit.java:18) nat exceptioninherit.main(exceptioninherit.java:24) catch(myexception e) e.printstacktrace(); class myexception2 extends exception private int i; public myexception2()

33、 public myexception2(string message) super(message); public myexception2(string message,int x) super(message); i = x; public int value() return i; public class exceptioninherit public static void f() throws myexception2 system.out.println(throwing myexception); throw new myexception2(the third const

34、ructor,4); public static void main(string args) try f(); catch(myexception2 e) system.out.println(e.value()=“ +e.value(); e.printstacktrace(); n輸出結(jié)果:輸出結(jié)果: nthrowing myexception ne.value()=4 nmyexception2: the third constructor nat exceptioninherit.f(exceptioninherit.java:28) nat exceptioninherit.mai

35、n(exceptioninherit.java: 34) 7.5自定義的異常自定義的異常 njava的異常處理涉及到程序流程的跳轉(zhuǎn),所以,虛擬的異常處理涉及到程序流程的跳轉(zhuǎn),所以,虛擬 機需要保存程序的執(zhí)行流程,以便異常發(fā)生時能正確機需要保存程序的執(zhí)行流程,以便異常發(fā)生時能正確 的跳轉(zhuǎn),這也就導(dǎo)致了使用異常時會引起額外的開銷,的跳轉(zhuǎn),這也就導(dǎo)致了使用異常時會引起額外的開銷, 所以,要謹慎地使用異常。所以,要謹慎地使用異常。 7.5異常使用規(guī)則異常使用規(guī)則 n 使用異常有如下幾個原則:使用異常有如下幾個原則: v 1、盡量避免使用異常,將異常情況提前檢測出來。、盡量避免使用異常,將異常情況提前檢

36、測出來。 v 2、不要為每個可能會出現(xiàn)異常的語句都設(shè)置、不要為每個可能會出現(xiàn)異常的語句都設(shè)置try和和 catch。 v 3、避免在方法中拋出(、避免在方法中拋出(throw)或者捕獲()或者捕獲(catch) 運行時異常運行時異常runtimeexception。 v 4、避免總是、避免總是catch exception或或throwable,而要,而要 catch具體的異常類。這樣可以使程序更加清晰。具體的異常類。這樣可以使程序更加清晰。 v 5、不要壓制、隱瞞異常。將不能處理的異常往外拋,、不要壓制、隱瞞異常。將不能處理的異常往外拋, 而不是捕獲之后隨便處理。而不是捕獲之后隨便處理。 v

37、 6、不要在循環(huán)中使用、不要在循環(huán)中使用try.catch,盡量將,盡量將try.catch 放在循環(huán)外或者避免使用。放在循環(huán)外或者避免使用。 7.5異常使用規(guī)則異常使用規(guī)則 n關(guān)于第一條原則:關(guān)于第一條原則: n /(1)盡量避免使用異常,將異常情況提前檢測出來盡量避免使用異常,將異常情況提前檢測出來 n stack stack = new stack(); n try n stack.pop(); n catch (emptystackexception e) n /. n n /應(yīng)該用下面的方式,以避免使用異常應(yīng)該用下面的方式,以避免使用異常 n if (!stack.isempty()

38、 n stack.pop(); n 7.5異常使用規(guī)則異常使用規(guī)則 n關(guān)于第二條原則:關(guān)于第二條原則: n/(2)不要為每個可能會出現(xiàn)的一場的語句都設(shè)置try和 catch try stack.pop(); catch(emptystackexceptione) /. stringdata=123; try double.parsedouble(data); catch(numberformatexceptione) /. 7.5異常使用規(guī)則異常使用規(guī)則 n /應(yīng)該使用下面的方式,將兩個語句放在一個try塊中 try stack.pop(); double.parsedouble(data);

39、 catch(emptystackexceptione) /. catch(numberformatexceptione) /. 7.5異常使用規(guī)則異常使用規(guī)則 n關(guān)于第三條原則:關(guān)于第三條原則: n/(3)避免在方法中拋出或者捕獲運行時異常 runtimeexception和error, /比如內(nèi)存錯誤等 /避免出現(xiàn)下面的情況 stringarray; try array=newstring1000; /array=newstring1000000;此時會出現(xiàn) outofmemoryerror異常 catch(outofmemoryerrore) throwe; /直接用下面代碼 array

40、=newstring1000; 7.5異常使用規(guī)則異常使用規(guī)則 n關(guān)于第四條原則:關(guān)于第四條原則: n/(4)避免總是catchexception或throwable,而要捕 獲具體的異常 /這樣可以根據(jù)不同的異常做不同的處理,使 程序更加清晰 try stack.pop(); double.parsedouble(data); catch(exceptione) /應(yīng)該避免catchexception! 7.5異常使用規(guī)則異常使用規(guī)則 n關(guān)于第五條原則:關(guān)于第五條原則: n/(5)不要壓制、隱瞞異常。將不能處理的異常往外拋, 而不是捕獲之后隨便處理 try double.parsedouble(data); catch(numberformatexceptione) /. throwe;/拋出不能處理的異常,而不是隱 瞞 7.5異常使用規(guī)則異常使用規(guī)則 n關(guān)于第六

溫馨提示

  • 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)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論