版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
Java程序設(shè)計(jì)
——異常處理重慶大學(xué)計(jì)算機(jī)學(xué)院
Java的異常處理1什么是異常2異常處理機(jī)制3異常的處理4創(chuàng)建用戶異常類1什么是異常異常(Exception)也叫例外。在Java編程語言中,異常就是程序在運(yùn)行過程中由于硬件設(shè)備問題、軟件設(shè)計(jì)錯(cuò)誤、缺陷等導(dǎo)致的程序錯(cuò)誤。在軟件開發(fā)過程中,很多情況都將導(dǎo)致異常的產(chǎn)生,例如:(1)想打開的文件不存在;(2)網(wǎng)絡(luò)連接中斷;(3)操作數(shù)超出預(yù)定范圍;(4)正在裝載的類文件丟失;(5)訪問的數(shù)據(jù)庫打不開;1什么是異??梢姡诔绦蛑挟a(chǎn)生異常的現(xiàn)象是非常普遍的。在Java編程語言中,對異常的處理有非常完備的機(jī)制。異常本身作為一個(gè)對象,產(chǎn)生異常就是產(chǎn)生一個(gè)異常對象。這個(gè)對象可能由應(yīng)用程序本身產(chǎn)生,也可能由Java虛擬機(jī)產(chǎn)生,這取決于產(chǎn)生異常的類型。該異常對象中包括了異常事件的類型以及發(fā)生異常時(shí)應(yīng)用程序目前的狀態(tài)和調(diào)用過程。請看下面產(chǎn)生異常的例子。1什么是異?!纠?】文件操作將產(chǎn)生異常//Exception1.javaimportjava.io.*;classException1{publicstaticvoidmain(Stringargs[]){FileInputStreamfis=newFileInputStream("text.txt");intb;while((b=fis.read())!=-1){System.out.print(b);}fis.close();}}1什么是異常當(dāng)編譯這個(gè)程序時(shí),屏幕上會輸出下面的信息:D:\user\chap08>javacException1.javaException1.java:5:unreportedexceptionjava.io.FileNotFoundException;mustbecaughtordeclaredtobethrownFileInputStreamfis=newFileInputStream("text.txt");
^Exception1.java:7:unreportedexceptionjava.io.IOException;mustbecaughtordeclaredtobethrownwhile((b=fis.read())!=-1){
^Exception1.java:10:unreportedexceptionjava.io.IOException;mustbecaughtordeclaredtobethrownfis.close();
^3errors1什么是異?!纠?】數(shù)組下標(biāo)超界的例子//Exception2.javapublicclassException2{publicstaticvoidmain(Stringargs[]){Stringlangs[]={"Java","VisaulBasic","C++"};inti=0;while(i<4){System.out.println(langs[i]);i++;}}}1什么是異常程序的編譯和運(yùn)行結(jié)果如下:D:\user\chap08>javacException2.javaD:\user\chap08>javaException2JavaVisaulBasicC++Exceptioninthread"main"java.lang.ArrayIndexOutOfBoundsException:3atException2.main(Exception2.java:8)這個(gè)的例子編譯可以通過,但運(yùn)行時(shí)出現(xiàn)異常信息被拋出。在其循環(huán)被執(zhí)行四次之后,數(shù)組下標(biāo)溢出,程序終止,并帶有錯(cuò)誤信息,就象前面所示的程序那樣。1什么是異?!纠?】被0除的例子//Exception3.javaclassException3{publicstaticvoidmain(Stringargs[]){inta=0;System.out.println(5/a);}}我們編譯這個(gè)程序得到其字節(jié)碼文件,然后運(yùn)行它,屏幕上的顯示如下:D:\user\chap08>javacException3.javaD:\user\chap08>javaException3Exceptioninthread"main"java.lang.ArithmeticException:/byzeroatException3.main(Exception3.java:5)因?yàn)槌龜?shù)不能為0,所以在程序運(yùn)行的時(shí)候出現(xiàn)了除以0溢出的異常事件。1什么是異常
在上面的三個(gè)例子中,我們都遇到了異常。屏幕上所顯示的信息java.io.IOException、java.io.FileNotFoundException、java.lang.ArrayIndexOutOfBoundsException
以及java.lang.ArithmeticException
1什么是異常
分別指明了異常的類型以及異常所在的包。同時(shí)我們也可以看到,對于某些異常,在程序中必須對它進(jìn)行處理,否則編譯程序會指出錯(cuò)誤(如例1)。但對另一些異常,在程序中可以不做處理,而直接由運(yùn)行時(shí)系統(tǒng)來處理(如例3)。在下節(jié)中,我們將詳細(xì)了解這兩類異常,以及在程序中如何處理這兩類異常。
Java異常處理1什么是異常2異常處理機(jī)制3異常的處理4創(chuàng)建用戶異常類2異常處理機(jī)制2.1Java的異常處理機(jī)制2.2異常類的類層次2.3Throwable類的常用方法2.1Java的異常處理機(jī)制
在Java程序的執(zhí)行過程中,如果出現(xiàn)了異常事件,就會生成一個(gè)異常對象。這個(gè)對象可能是由正在運(yùn)行的方法生成,也可能由Java虛擬機(jī)生成,其中包含一些信息指明異常事件的類型以及當(dāng)異常發(fā)生時(shí)程序的運(yùn)行狀態(tài)等。Java語言提供兩種處理異常的機(jī)制:
(1)捕獲異常
在Java程序運(yùn)行過程中系統(tǒng)得到一個(gè)異常對象時(shí),它將會沿著方法的調(diào)用棧逐層回溯,尋找處理這一異常的代碼。找到能夠處理這種類型異常的方法后,運(yùn)行時(shí)系統(tǒng)把當(dāng)前異常對象交給這個(gè)方法進(jìn)行處理,這一過程稱為捕獲(catch)異常。這是一種積極的異常處理機(jī)制。如果Java運(yùn)行時(shí)系統(tǒng)找不到可以捕獲異常的方法,則運(yùn)行時(shí)系統(tǒng)將終止,相應(yīng)的Java程序也將退出。
2.1Java的異常處理機(jī)制(2)聲明拋棄異常當(dāng)Java程序運(yùn)行時(shí)系統(tǒng)得到一個(gè)異常對象時(shí),如果一個(gè)方法并不知道如何處理所出現(xiàn)的異常,則可在方法聲明時(shí),聲明拋棄(throws)異常。2.2異常類的類層次
前面已經(jīng)提到,Java是采用面向?qū)ο蟮姆椒▉硖幚礤e(cuò)誤的,一個(gè)異常事件是由一個(gè)異常對象來代表的。這些異常對象都對應(yīng)于類java.lang.Throwable及其子類。下面我們就來看一下異常類的層次。
在java類庫的每個(gè)包中都定義了自己的異常類,所有這些類都直接或間接地繼承于類Throwable。下圖列舉了一些異常類并指明了它們的繼承關(guān)系。
2.2異常類的類層次
從上圖可以看出,Java中的異常事件分為兩大類。一類繼承于類Error,它的繼承關(guān)系如下:java.lang.Objectjava.lang.Throwablejava.lang.Error
常見的錯(cuò)誤類有AnnotationFormatError,AssertionError,AWTError,LinkageError,CoderMalfunctionError,FactoryConfigurationError,ThreadDeath,VirtualMachineError,TransformerFactoryConfigurationError等,包括動(dòng)態(tài)鏈接失敗、線程死鎖、圖形界面錯(cuò)誤、虛擬機(jī)錯(cuò)誤等,通常Java程序不應(yīng)該捕獲這類異常,也不會拋棄這種異常。2.2異常類的類層次另外一類異常則繼承于類Exception,這是Java程序中所大量處理的異常。它的繼承關(guān)系如下:java.lang.Objectjava.lang.Throwablejava.lang.Exception常見的異常類有:AclNotFoundException,PrintException,GeneralSecurityException,InterruptedException,InvalidPreferencesFormatException,ParseException,RuntimeException,SAXException,SQLException,TimeoutException,TransformerException,UnsupportedCallbackException,UnsupportedLookAndFeelException,URISyntaxException,UserException,XAException,XMLParseException,XPathException
等
其中包括了運(yùn)行時(shí)異常和非運(yùn)行時(shí)異常。
異常體系結(jié)構(gòu)所有異常類型都是內(nèi)置類Throwable的子類用于Java運(yùn)行時(shí)系統(tǒng)來顯示與運(yùn)行時(shí)系統(tǒng)本身有關(guān)的錯(cuò)誤用于用戶程序可能捕獲的異常,也是用來創(chuàng)建用戶異常類型子類的類。Error類對象由Java虛擬機(jī)生成并拋出;Exception類對象由應(yīng)用程序處理或拋出。2.2異常類的類層次
2.2異常類的類層次
常見的運(yùn)行時(shí)異常如下:(1)類型轉(zhuǎn)換異常ClassCastExceptionStringstrName=newstring(“123”);intnNumber=(int)strName;(2)數(shù)組超界異常ArrayIndexOutBoundsExceptionint[]b=newint[10];b[10]=1000;(3)指定數(shù)組維數(shù)為負(fù)值異常NegativeArraySizeExceptionb[-1]=1001;(4)算術(shù)異常ArithmeticExceptionintb=0;a=500/b;(5)Java系統(tǒng)內(nèi)部異常InternalExceptionJVM拋出的異常。(6)類型不符合異常IncompatibleTypeExceptionintn=12345;Strings=(String)n;(7)內(nèi)存溢出異常OutOfMemeoryException(8)沒有找到類定義異常NoClassDefFoundExceptionaClassaa=newaClas();//但aClass類未定義。(9)空指針異常NullPointerExceptionintb[];b[0]=99;//沒有實(shí)例化,就訪問,將產(chǎn)生空指針。2.2異常類的類層次
常見的非運(yùn)行時(shí)異常如下:(1)ClassNotFoundException:找不到類或接口所產(chǎn)生的異常(2)CloneNotSupportedException:使用對象的clone方法但無法執(zhí)行Cloneable所產(chǎn)生的異常。(3)IllegalAccessException:類定義不明確所產(chǎn)生的異常。例如:類不為public,或是包含一個(gè)類定義在另一個(gè)類庫內(nèi)。(4)IOException:在一般情況下不能完成I/O操作所產(chǎn)生的異常。(5)EOFException:打開文件沒有數(shù)據(jù)可以讀取所產(chǎn)生的異常(6)FileNotFoundException:在文件系統(tǒng)中,找不到文件名稱或路徑所產(chǎn)生(7)InterruptedIOException:目前線程等待執(zhí)行,另一線程中斷目前線程I/O運(yùn)行所產(chǎn)生的異常
在Sun公司提供的各種API包中,如java.io,,java.awt等,都提供不同情況下可能產(chǎn)生的異常。由于異常的種類非常多,需要讀者實(shí)際運(yùn)用中逐漸掌握。
2.3Throwable類的常用方法
java.lng.Throwable類是所有Error類和Exception類的父類,常用的方法有fillInStackTrace()、getLocalizedMessage()、getMessage()、printStackTrace()、printStackTrace(PrintStream)、printStackTrace(PrintWriter)、toString()。(1)publicnativeThrowablefillInStackTrace()填寫執(zhí)行堆棧跟蹤信息。
該方法在應(yīng)用程序重新拋出錯(cuò)誤或異常時(shí)有用。例如:
try{a=b/c;}catch(ArithmeticExceptione){a=Integer.MAX_VALUE;throwe.fillInStackTrace();}(2)publicStringgetLocalizedMessage()生成該Throwable的本地化描述。
子類可能會覆蓋該方法以便產(chǎn)生一個(gè)特定于本地的消息。
對于未覆蓋該方法的子類,缺省地返回調(diào)用getMessage()的結(jié)果。
2.3Throwable類的常用方法
(3)publicStringgetMessage()返回該throwable對象的詳細(xì)信息。如果該對象沒有詳細(xì)信息則返回null。
(4)publicvoidprintStackTrace()把該Throwable和它的跟蹤情況打印到標(biāo)準(zhǔn)錯(cuò)誤流。(5)publicvoidprintStackTrace(PrintStreams)把該Throwable和它的跟蹤情況打印到指定打印流。
(6)publicvoidprintStackTrace(PrintWriters)把該Throwable和它的跟蹤情況打印到指定打印流。(7)publicStringtoString()返回該throwable對象的簡短字符串描述。
Java異常處理1什么是異常2異常處理機(jī)制3異常的處理4創(chuàng)建用戶異常類3異常的處理3.1捕獲異常try-catch-finally3.2聲明拋棄異常3.3拋出異常3.1捕獲異常try-catch-finally
一個(gè)方法中如果對某種類型的異常對象提供了相應(yīng)的處理代碼,則這個(gè)方法可捕獲該種異常。捕獲異常是通過try-catch-finally語句實(shí)現(xiàn)的。其語法為:try{
......
}catch(ExceptionName1e){
......
}catch(ExceptionName2e){
......
}
......
}finally{
......
}
1、try捕獲異常的第一步是用try{…}選定捕獲異常的范圍,由try所限定的代碼塊中的語句在執(zhí)行過程中可能會生成異常對象并拋棄。3.1捕獲異常try-catch-finally
2、catch原理每個(gè)try代碼塊可以伴隨一個(gè)或多個(gè)catch語句,用于處理try代碼塊中所生成的異常事件。catch語句只需要一個(gè)形式參數(shù)來指明它所能夠捕獲的異常類型,這個(gè)類必須是Throwable的子類,運(yùn)行時(shí)系統(tǒng)通過參數(shù)值把被拋棄的異常對象傳遞給catch塊。catch塊中的代碼用來對異常對象進(jìn)行處理,與訪問其它對象一樣,可以訪問一個(gè)異常對象的變量或調(diào)用它的方法。getMessage()是類Throwable所提供的方法,用來得到有關(guān)異常事件的信息,類Throwable還提供了方法printStackTrace()用來跟蹤異常事件發(fā)生時(shí)執(zhí)行堆棧的內(nèi)容。例如:
3.1捕獲異常try-catch-finallytry{
......
}catch(FileNotFoundExceptione){
System.out.println(e);
System.out.println(“message:”+e.getMessage());
e.printStackTrace(System.out);
}catch(IOExceptione){
System.out.println(e);
}
3.1捕獲異常try-catch-finally
3、catch語句的順序
捕獲異常的順序和catch語句的順序有關(guān),當(dāng)捕獲到一個(gè)異常時(shí),剩下的catch語句就不再進(jìn)行匹配。因此,在安排catch語句的順序時(shí),首先應(yīng)該捕獲最特殊的異常,然后再逐漸一般化。也就是一般先安排子類,再安排父類。例如上面的程序如果安排成如下的形式:
try{
......
}catch(IOExceptione){
System.out.println(e);
System.out.println("message:"+e.getMessage());
e.printStackTrace(System.out);
}catch(FileNotFoundExceptione){
System.out.println(e);
}3.1捕獲異常try-catch-finally
由于第一個(gè)catch語句首先得到匹配,第二個(gè)catch語句將不會被執(zhí)行。編譯時(shí)將出現(xiàn)“catchnotreached”的錯(cuò)誤。
4、finally捕獲異常的最后一步是通過finally語句為異常處理提供一個(gè)統(tǒng)一的出口,使得在控制流轉(zhuǎn)到程序的其它部分以前,能夠?qū)Τ绦虻臓顟B(tài)作統(tǒng)一的管理。一般是用來關(guān)閉文件或釋放其他的系統(tǒng)資源。雖然finally作為try-catch-finally結(jié)構(gòu)的一部分,但在程序是可選的,也就是說可以沒有finally語句。如果存在finally語句,不論try塊中是否發(fā)生了異常,是否執(zhí)行過catch語句,都要執(zhí)行finally語句。另外,try-catch-finally可以嵌套。3.2聲明拋棄異常
如果在一個(gè)方法中生成了一個(gè)異常,但是這一方法并不確切地知道該如何對這一異常事件進(jìn)行處理,這時(shí),該方法就應(yīng)該聲明拋棄異常,使得異常對象可以從調(diào)用棧向后傳播,直到有合適的方法捕獲它為止。
聲明拋棄異常是在一個(gè)方法聲明中的throws子句中指明的。例如:
publicintread()throwsIOException{……}throws子句中同時(shí)可以指明多個(gè)異常,之間由逗號隔開。例如:
publicstaticvoidmain(Stringargs[])throws
IOException,IndexOutOfBoundsException{……}
最后,我們再次強(qiáng)調(diào),對于非運(yùn)行時(shí)例外,如前例中的IOException等,程序中必須要作出處理,或者捕獲,或者聲明拋棄。而對于運(yùn)行時(shí)例外,如前例中的ArithmeticException,IndexOutOfBoundsException,則可以不做處理。3.2聲明拋棄異常
【例4】拋棄異常的例子(對例1進(jìn)行改進(jìn))//Exception4.javaimportjava.io.*;publicclassException4{publicstaticvoidmain(Stringargs[])throwsFileNotFoundException,IOException{FileInputStreamfis=newFileInputStream(“text.txt”);intb;while((b=fis.read())!=-1){System.out.print(b);}fis.close();}}3.2聲明拋棄異常
【例5】捕獲異常的例子(對例1進(jìn)行改進(jìn))importjava.io.*;publicclassException5{publicstaticvoidmain(Stringargs[]){try{FileInputStreamfis=newFileInputStream(“text.txt”);intb;while((b=fis.read())!=-1){System.out.print(b);}fis.close();}catch(FileNotFoundExceptione){
System.out.println(e);
System.out.println("message:"+e.getMessage());
e.printStackTrace(System.out);
}catch(IOExceptione){
System.out.println(e);
}}}3.3拋出異常
拋出異常就是產(chǎn)生異常對象的過程,首先要生成異常對象,異常或者由虛擬機(jī)生成,或者由某些類的實(shí)例生成,也可以在程序中生成。在方法中,拋出異常對象是通過throw語句實(shí)現(xiàn)的。例如:IOExceptione=newIOException();
throwe;可以拋出的異常必須是Throwable或其子類的實(shí)例。下面的語句在編譯時(shí)將會產(chǎn)生語法錯(cuò)誤:thrownewString("throwanything");
自定義異常類必須是Throwable的直接或間接子類。
3.3拋出異?!纠?】顯示拋出異常詳細(xì)情況的例子//Exception6.javapublic
class
Exception6
{
public
static
void
main(String[]
args)
{
try
{
throw
new
Exception("My
Exception");
}
catch
(Exception
e)
{
System.err.println("Caught
Exception");
System.err.println("getMessage():"
+
e.getMessage());
System.err.println("getLocalizedMessage():"
+
e.getLocalizedMessage());
System.err.println("toString():"
+
e);
System.err.println("printStackTrace():");
e.printStackTrace();
}
}
}
3.3拋出異常程序運(yùn)行結(jié)果如下:d:\user\chap08>javaException6CaughtExceptiongetMessage():MyExceptiongetLocalizedMessage():MyExceptiontoString():java.lang.Exception:MyExceptionprintStackTrace():java.lang.Exception:MyException atException6.main(Exception6.java:5)
Java異常處理1什么是異常2異常處理機(jī)制3異常的處理4創(chuàng)建用戶異常類4創(chuàng)建用戶異常類
如果Java提供的系統(tǒng)異常類型不能滿足程序設(shè)計(jì)的需求,我們可以設(shè)計(jì)自己的異常類型。從Java異常類的結(jié)構(gòu)層次可以看出,Java異常的公共父類為Throwable。在程序運(yùn)行中可能出現(xiàn)兩種問題:一種是由硬件系統(tǒng)或JVM導(dǎo)致的故障,Java定義該故障為Error。這類問題用戶程序不能夠處理的。另外一種問題是程序運(yùn)行錯(cuò)誤,Java定義為Exception。這種情況下,可以通過程序設(shè)計(jì)的調(diào)整來實(shí)現(xiàn)異常處理。因此,用戶定義的異常類型必須是Throwable的直接或間接子類。Java推薦用戶的異常類型以Exception為直接父類。創(chuàng)建用戶異常的方法如下:
4創(chuàng)建用戶異常類
classUserExceptionextendsException{UserException(){super();
……//其它語句}}我們在使用異常時(shí),有以下幾點(diǎn)建議需要注意:(1)對于運(yùn)行時(shí)例外,如果不能預(yù)測它何時(shí)發(fā)生,程序可以不做處理,而是讓Java虛機(jī)去處理它。(2)如果程序可以預(yù)知運(yùn)行時(shí)例外可能發(fā)生的地點(diǎn)和時(shí)間,則應(yīng)該在程序中進(jìn)行處理,而不應(yīng)簡單地把它交給運(yùn)行時(shí)系統(tǒng)。
(3)在自定義異常類時(shí),如果它所對應(yīng)的異常事件通??偸窃谶\(yùn)行時(shí)產(chǎn)生的,而且不容易預(yù)測它將在何時(shí)、何處發(fā)生,則可以把它定義為運(yùn)行時(shí)例外,否則應(yīng)定義為非運(yùn)行時(shí)例外。4創(chuàng)建用戶異常類
。【例7】用戶定義的異常類的使用//Exception8.javaclassMyotherExceptionextendsException{//用戶定義的異常publicMyotherException(){}publicMyotherException(Stringmsg){super(msg);}}4創(chuàng)建用戶異常類publicclassException8{publicstaticvoidf()throwsMyotherException{System.out.println("ThrowingMyotherExceptionfromf()");thrownewMyotherException();}publicstaticvoidg()throwsMyotherException{System.out.println("ThrowingMyotherExceptionfromg()");thrownewMyotherException("Originateding()");}
4創(chuàng)建用戶異常類publicstaticvoidmain(String[]args){try{f();}catch(MyotherExceptione){e.printStackTrace();}try{g();}catch(MyotherExceptione){e.printStackTrace();}}}4創(chuàng)建用戶異常類程序的運(yùn)行結(jié)果如下:ThrowingMyotherExceptionfromf()ThrowingMyotherExcepti
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度專業(yè)自駕旅游包車代駕服務(wù)合同
- 2025年度棚改項(xiàng)目回遷房買賣合同范本
- 2025年桉樹種植基地環(huán)保設(shè)施建設(shè)與運(yùn)營合同3篇
- 2025版智能城市基礎(chǔ)設(shè)施建設(shè)招投標(biāo)與合同管理指導(dǎo)文件2篇
- 萬科旅游房產(chǎn)買賣合同(2024年專用)3篇
- 二零二五年度專業(yè)配音演員獨(dú)家聘用合同范本4篇
- 二零二五年度太陽能熱水系統(tǒng)施工合同規(guī)范文本4篇
- 二零二五年度創(chuàng)業(yè)公司股權(quán)激勵(lì)及期權(quán)授予合同3篇
- 二零二五年度團(tuán)隊(duì)旅游數(shù)據(jù)共享合同
- 2025年度寫字樓退租合同(含辦公家具設(shè)備退還明細(xì))4篇
- 企業(yè)文化融入中華傳統(tǒng)文化的實(shí)施方案
- 9.1增強(qiáng)安全意識 教學(xué)設(shè)計(jì) 2024-2025學(xué)年統(tǒng)編版道德與法治七年級上冊
- 《化工設(shè)備機(jī)械基礎(chǔ)(第8版)》全套教學(xué)課件
- 人教版八年級數(shù)學(xué)下冊舉一反三專題17.6勾股定理章末八大題型總結(jié)(培優(yōu)篇)(學(xué)生版+解析)
- 2024屆上海高考語文課內(nèi)古詩文背誦默寫篇目(精校版)
- DL-T5024-2020電力工程地基處理技術(shù)規(guī)程
- 初中數(shù)學(xué)要背誦記憶知識點(diǎn)(概念+公式)
- 駕照體檢表完整版本
- 農(nóng)產(chǎn)品農(nóng)藥殘留檢測及風(fēng)險(xiǎn)評估
- 農(nóng)村高中思想政治課時(shí)政教育研究的中期報(bào)告
- 20100927-宣化上人《愣嚴(yán)咒句偈疏解》(簡體全)
評論
0/150
提交評論