![lecture11-异常处理PPT幻灯片.ppt_第1页](http://file1.renrendoc.com/fileroot_temp2/2020-3/2/67097d86-abf6-4ae1-aaae-4b49d50579a4/67097d86-abf6-4ae1-aaae-4b49d50579a41.gif)
![lecture11-异常处理PPT幻灯片.ppt_第2页](http://file1.renrendoc.com/fileroot_temp2/2020-3/2/67097d86-abf6-4ae1-aaae-4b49d50579a4/67097d86-abf6-4ae1-aaae-4b49d50579a42.gif)
![lecture11-异常处理PPT幻灯片.ppt_第3页](http://file1.renrendoc.com/fileroot_temp2/2020-3/2/67097d86-abf6-4ae1-aaae-4b49d50579a4/67097d86-abf6-4ae1-aaae-4b49d50579a43.gif)
![lecture11-异常处理PPT幻灯片.ppt_第4页](http://file1.renrendoc.com/fileroot_temp2/2020-3/2/67097d86-abf6-4ae1-aaae-4b49d50579a4/67097d86-abf6-4ae1-aaae-4b49d50579a44.gif)
![lecture11-异常处理PPT幻灯片.ppt_第5页](http://file1.renrendoc.com/fileroot_temp2/2020-3/2/67097d86-abf6-4ae1-aaae-4b49d50579a4/67097d86-abf6-4ae1-aaae-4b49d50579a45.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、异常处理和异常类型Chapter 11 557-572,Hy Mao 2020年8月15日 华东师范大学软件学院,1,2020/8/15,2,Outline,异常处理的重要性 Java语言中的异常处理 Java的异常类 如何定义自己的异常: 定义新的异常 抛出异常 捕获异常 异常的处理流程 调试技术与调试技巧,华东师范大学软件学院 王丽苹,2020/8/15,3,异常介绍,Example:以下代码运行之后会出现什么情况?,public class ExceptionTest public static void main(String args) int b=0; int a; a = 4/b
2、; ,C:java ExceptionTest Exception in thread main java.lang.ArithmeticException: / by zero at ExceptionTest.main(ExceptionTest.java:4),华东师范大学软件学院 王丽苹,2020/8/15,4,异常介绍,public class ArrayExceptionTest public static void main(String args) int arr = new int5; System.out.println(arr1); System.out.println(
3、arr5); System.out.println(arr2); ,C:java ArrayExceptionTest 0 Exception in thread main java.lang.ArrayIndexOutOfBoundsException: 5 at ArrayExceptionTest.main(ArrayExceptionTest.java:5),华东师范大学软件学院 王丽苹,2020/8/15,5,异常简介,什么是异常? 异常实际上是导致正常指令流中断的一种事件. 编写应用程序时应该做些什么工作(程序中的Bug是不可避免的,编写程序时应该尽量的避免错误的出现,并且提供尽可
4、能多的错误信息): 通知用户出现了一个错误。 保存当前已经完成的所有工作。 允许用户安全地退出程序。,华东师范大学软件学院 王丽苹,2020/8/15,6,异常简介,什么类型的错误可以导致异常呢? 严重的硬件错误,如内存中某些芯片故障或者硬盘崩溃。 程序需要使用系统中当前不可用的I/O设备 试图用零去除 试图通过超过边界的下标访问数组的元素 整数溢出 浮点数溢出 试图打开不存在的文件以使用 试图打破安全性,比如试图修改只读文件,华东师范大学软件学院 王丽苹,2020/8/15,7,传统的错误处理技术,在一般的传统的语言中如何处理异常事件? 例如:如何处理除数为0的事件。 早期除了精心设计的之外
5、,编程语言没有任何的错误处理机制。 程序员必须考虑可能的错误条件并沿着主应用程序代码进行检查。 程序员认真地考虑所有类型的错误检测,是非常巨大的任务。,华东师范大学软件学院 王丽苹,2020/8/15,8,传统的错误处理技术,以常规方法处理错误退出程序,返回错误编号,public void insert(QueueElement d) if (isFull() System.out.println(queue overflow) ; System.exit(1) ; else if (d.getname().isexist() System.out.println(queueElementna
6、me is exist ) ; System.exit(2) ; else if(d.getname().isnull() System.out.println(queueelement name is null) ; System.exit(3) ; else / insert the element / end of method insert,华东师范大学软件学院 王丽苹,2020/8/15,9,Note: 常规方法的不足:,大部分精力花在出错处理上了. 只把能够想到的错误考虑到,对以外的情况无法处理 程序可读性差 出错返回信息量太少,Java中用异常的形式处理错误,华东师范大学软件学院
7、 王丽苹,2020/8/15,10,Java中处理异常的思路,Java中的异常可以理解为一种特殊的class。 Java中用异常来处理程序中可能的错误,其主要的特点在于: 1.把错误代码从常规代码中分离出来(便于集中精力处理特定的功能)。 2. 把错误传播给调用堆栈。 3. 按错误类型和错误差别分组(复用的思想)。 4. 系统提供了对于一些无法预测的错误的捕获和处理 5. 克服了传统方法的错误信息有限的问题,华东师范大学软件学院 王丽苹,2020/8/15,11,Exception如何捕获,1. try 2. / 接受监视的程序块,在此区域可能产生异常 3. catch (SomeExcept
8、ionType e) 4. / 对SomeException出现时的处理 5. catch (Exception e) 6. / 对Exception出现时的处理 7. ,In try, Exception thrown here,First catch, exception handler,Second catch, exception handler,Thrown exception matched against first set of exception handlers,If it fails to match. It is matched against the next set
9、 of exception handlers and so on,If the exception matches none of the exception handlers, the program is abandoned,捕获并且处理异常的格式,华东师范大学软件学院 王丽苹,2020/8/15,12,Exception如何捕获,try程序块中通常包含了java程序中的一段代码,这段代码在运行中可能会出现异常的事件。try意味着需要检测这段代码的执行。 catch程序块: 语法为:catch (ExceptionClass exceptionObj) catch程序块必须出现在try程序
10、块之后。一个try程序块后可以跟一个或多个catch程序块。 当try程序块中没有出现异常时,catch程序块直接被跳过。 当try程序块中出现异常时,与当前异常匹配的catch程序块被执行。 具体情况可以参考以下的实例。,华东师范大学软件学院 王丽苹,2020/8/15,13,Example-ExceptionTest.java,public class ExceptionTest public static void main(String args) int b=0; int a; try a=4/b; catch(ArithmeticException e) System.out.pr
11、intln(divided by 0); ,本例题为完成除法运算的两种方式:有异常处理和没有异常处理,public class ExceptionTest public static void main(String args) int b=0; int a; a = 4/b; ,Exception in thread main java.lang.ArithmeticException: / by zero at ExceptionTest.main(ExceptionTest.java:4),divided by 0,华东师范大学软件学院 王丽苹,2020/8/15,14,Example-
12、ExceptionTest.java,public class ExceptionTest public static void main(String args) int b=0; int a; try a=4/b; catch(NullPointerException e) System.out.println(divided by 0); ,虽然有异常处理但是类型不匹配所以输出结果与没有异常处理时的一样,Exception in thread main java.lang.ArithmeticException: / by zero at ExceptionTest.main(Excep
13、tionTest.java:25),华东师范大学软件学院 王丽苹,2020/8/15,15,Java中定义的异常,异常的分类,华东师范大学软件学院 王丽苹,2020/8/15,16,Java中定义的异常,Error:描述了java运行时间系统内部的错误以及资源耗尽的情况。用户一般对这种错误是无能为力的。(例如虚拟机内部的错误、内存溢出、堆栈溢出的错误) 异常的分类: Unchecked Exception是指Error类和RuntimeException类及其他们的子类。 RuntimeException及其子类表示的异常往往是由于程序编写的错误造成的。 例如数组越界错误,空指针错误等,这一类
14、错误往往可以通过改写程序来避免。 在程序中可以不捕获Unchecked Exception。,华东师范大学软件学院 王丽苹,2020/8/15,17,Java中定义的异常,异常的的分类: Checked Exception是指除了Error类和RuntimeException类及其他们的子类之外的异常类。 Checked Exception往往表示由于外界的因素造成的系统异常事件例如I/O错误,读取硬盘错误等,这一类异常在程序代码中是没有办法解决的。 如果在代码中存在Checked Exception,必须要用try和catch程序块开处理这一类异常事件。,华东师范大学软件学院 王丽苹,202
15、0/8/15,18,Java中定义的异常,Java程序中常用的异常类 RuntimeException: 错误的转型(cast):java.lang.ClassCastException 数组越界错误:java.lang.ArrayIndexOutOfBoundsException 空指针错误:java.lang.NullPointerException 数组元素类型错误:java.lang.ArrayStoreException 算术运算错误:java.lang.ArithmeticException String转换成数字类型时的错误:java.lang.NumberFormatExcep
16、tion 非RuntimeException: 文件读取越界:java.io.EOFException 文件没有找到:java.io.FileNotFoundException URL链接错误:.MalformedURLException 主机不可识别:.UnknownHostException,华东师范大学软件学院 王丽苹,2020/8/15,19,ExampleStrDiv.java,现在存在两个String,他们的值为数值型的。请编写程序完成如下功能:第一个String的第3位和第4位数字与第二个String的第2位数字相除的结果。,public class StrDiv public
17、int Div(String str1, String str2) char c1 = str1.charAt(2); char c2 =str1.charAt(3); char c3 =str2.charAt(1); int num = (int)(c1-48)*10+(int)(c2-48); int num1 = (int)(c3-48); return num/num1; public static void main(String args) StrDiv test = new StrDiv(); System.out.println(result is +test.Div(1234
18、,12);,D:javaForLecturesrclecture9java StrDiv result is 17,Note:这种处理方式能够成功,但是对于很多可能出问题的情况没有考虑。所以这种处理方式是不完善。,华东师范大学软件学院 王丽苹,2020/8/15,20,ExampleStrDiv.java,public class StrDiv public int Div(String str1, String str2) char c1,c2,c3; int num = 0,num1 =0; try c1 = str1.charAt(2); c2 = str1.charAt(3); c3
19、= str2.charAt(1); num = (int)(c1-48)*10+(int)(c2-48); num1 = (int)(c3-48); return num/num1; catch (StringIndexOutOfBoundsException se) System.out.println(se.getMessage(); catch (ArithmeticException ae) System.out.println(ae.getMessage(); return -1; public static void main(String args) StrDiv test =
20、new StrDiv(); System.out.println(result is +test.Div(1234,12); System.out.println(result is +test.Div(12,12); System.out.println(result is +test.Div(1234,10);,D:javaForLecturesrclecture9java StrDiv result is 17 String index out of range: 2 result is -1 / by zero result is -1,Note:在本程序中捕获的两种异常StringI
21、ndexOutOfBoundsException和ArithmeticException都是属于uncheckedException,Thinking:是否可以总结一下进行异常处理和没有进行异常处理的区别?,华东师范大学软件学院 王丽苹,2020/8/15,21,Example-convert.java,完成String向整型的转化。(可能出现的异常,非数字型的字符串的转换,字符串转换越界。),public class convert public static void main(String args) int num; String str = null; try num = Integ
22、er.parseInt(str);/出现了NumberFormatException System.out.println(-After Convert); catch(NumberFormatException e) System.out.println(e.getMessage()+ cant convert to int); ,D:javaForLecturesrclecture9java convert null cant convert to int,Note:在此题中如果定义的局部变量String str在的程序中没有初始化就直接使用,编译会出错。,华东师范大学软件学院 王丽苹,2
23、020/8/15,22,Example-convert.java,public class convert public static void main(String args) int num; String str = null; try str = abc; /非数字字符转换错误 System.out.println(-the String:+str); num = Integer.parseInt(str); System.out.println(-After Convert); catch(NumberFormatException e) System.out.println(e.
24、getMessage()+ cant convert to int); ,D:javaForLecturesrclecture9java convert -the String:abc For input string: abc cant convert to int,Note:请注意在try中异常发生时,程序中断的位置。,华东师范大学软件学院 王丽苹,2020/8/15,23,Example-convert.java,public class convert public static void main(String args) int num; String str = null; tr
25、y str = “3712312312”; /int是占32个二进制位,str超出了int的取值范围 System.out.println(-the String:+str); num = Integer.parseInt(str); System.out.println(-After Convert); catch(NumberFormatException e) System.out.println(e.getMessage()+ cant convert to int);,D:javaForLecturesrclecture9java convert -the String: 37123
26、12312 For input string: 3712312312 cant convert to int,华东师范大学软件学院 王丽苹,2020/8/15,24,Example-convert.java,public class convert public static void main(String args) int num; String str = null; try str = 3712312312; /int是占32个二进制位,str超出了int的取值范围 System.out.println(-the String:+str); num = Integer.parseIn
27、t(str); System.out.println(-After Convert); catch(Exception e) System.out.println(e.getMessage()+ Error); ,D:javaForLecturesrclecture9java convert -the String: 3712312312 For input string: 3712312312 Error,Note:在编写程序的时候,尽可能首先对所有可能的异常信息进行处理,为了避免漏掉某些异常,可以用Exception类来捕获,但是这个时候提供给用户的信息量就会少一些。,华东师范大学软件学院
28、 王丽苹,2020/8/15,25,Example-convert.java,public class convert public static void main(String args) int num; String str = null; try str = 3712312312; /int是占32个二进制位,str超出了int的取值范围 System.out.println(-the String:+str); num = Integer.parseInt(str); System.out.println(-After Convert); catch(NumberFormatExc
29、eption e) System.out.println(e.getMessage()+ cant convert to int); System.out.println(After Try and Catch); ,D:javaForLecturesrclecture9java convert -the String:3712312312 For input string: 3712312312 cant convert to int After Try and Catch,华东师范大学软件学院 王丽苹,2020/8/15,26,Example-convert.java,public cla
30、ss convert public static void main(String args) int num; String str = null; try str = 3712312312; /int是占32个二进制位,非数值型字符串转换错误 System.out.println(-the String:+str); num = Integer.parseInt(str); System.out.println(-After Convert); catch(NullPointerException e) System.out.println(e.getMessage()+ cant con
31、vert to int); System.out.println(After Try and Catch); ,D:javaForLecturesrclecture9java convert -the String:3712312312 Exception in thread main java.lang.NumberFormatException: For input string: 3 712312312 at java.lang.NumberFormatException.forInputString(Unknown Source) at java.lang.Integer.parseI
32、nt(Unknown Source) at java.lang.Integer.parseInt(Unknown Source) at convert.main(convert.java:82),Note:出现异常,但是匹配不成功,程序将在异常出现的位置提前终止,华东师范大学软件学院 王丽苹,2020/8/15,27,异常处理流程,1.出现异常找到了所匹配的Exception,Preceding step,Try block Throw statement,Unmatched catch,Matching catch,Unmatched catch,Next step,华东师范大学软件学院 王
33、丽苹,2020/8/15,28,异常处理流程,2.出现异常没有匹配的Exception,Preceding step,Try block Throw statement,Unmatched catch,Unmatched catch,Unmatched catch,Next step,No matching handler,so look for another set of handler,华东师范大学软件学院 王丽苹,2020/8/15,29,异常处理流程,3.没有出现异常,Preceding step,Try block,catch,catch,catch,Next step,华东师范大
34、学软件学院 王丽苹,2020/8/15,30,Exercise,public class ArrayExceptionTest public static void main(String args) int arr = new int5; System.out.println(arr1); System.out.println(arr5); System.out.println(arr2); ,以下程序在运行时会出现异常ArrayIndexOutOfBoundsException,请用添加try和catch程序块处理错误,并给用户用好的提示信息。,华东师范大学软件学院 王丽苹,2020/8/
35、15,31,Exception类的构造函数,Exception类中的构造函数: public Exception() Constructs a new exception with null as its detail message. public Exception(String message) Constructs a new exception with the specified detail message.,Exception类可以创建对象吗?它的对象创建之后一般是做什么用的呢?,throw语句一般和异常对象关联,我们可以在程序中需要的位置自己抛出异常,华东师范大学软件学院 王
36、丽苹,2020/8/15,32,throw语句,语法:throw 可以是Throwable及其子类的对象。 例如: NullPointerException ex = new NullPointerException() throw ex; 含义:程序在此位置出现了类型的异常。 如果程序执行中遇到了throw语句则正常的流程中断,转入到catch程序块中处理异常。,华东师范大学软件学院 王丽苹,2020/8/15,33,如何得到关于异常的描述信息,获取异常详细信息的方法在Exception的父类Throwable(java.lang包) 中有定义,Exception及其子类直接继承了这些方法。
37、常用的方法有: String getMessag()-Returns the detail message string of this Exception. String tostring()-Returns a short description of this Exception. Void printStackTrace()- Prints this exception and its backtrace to the standard error stream.,Note:在编写程序时,可以在catch()中调用上述方法以获取Exception的描述,从而为用户提供更加友好的信息说明
38、。,华东师范大学软件学院 王丽苹,2020/8/15,34,ExampleExceptionMethods.java,public class ExceptionMethods public static void main(String args) try throw new Exception(Heres my Exception); catch(Exception e) System.out.println(Caught Exception); System.out.println( e.getMessage(): + e.getMessage(); System.out.println
39、(e.toString(): + e.toString(); System.out.println(e.printStackTrace():); e.printStackTrace(); ,D:javaForLecturesrclecture9java ExceptionMethods Caught Exception e.getMessage(): Heres my Exception e.toString(): java.lang.Exception: Heres my Exception e.printStackTrace(): java.lang.Exception: Heres my
40、 Exception at ExceptionMethods.main(ExceptionMethods.java:4),华东师范大学软件学院 王丽苹,2020/8/15,35,finally,finally一定会执行的程序块(注意不是final) 异常有一个统一的出口-finally程序块。,try /常规的代码; catch() /处理异常 finally /无论发生什么异常(或者不发生任何异常),都要执行的部分; ,Note:finally代码段在某些情况下是非常有用的,例如在异常发生之后我们还需要务必关闭数据库的连接,关闭文件,关闭已经打开的端口,关闭网络连接等。这些都是在一个完整、严
41、密的程序中需要考虑的。,华东师范大学软件学院 王丽苹,2020/8/15,36,example finally catch(NullPointerException e) System.out.println(in catch get exception: +e.getMessage(); finally System.out.println(In finally, it must executed!); ,D:javaForLecturesrclecture9java JavaFinally in catch get exception: null In finally, it must e
42、xecuted!,Note:出现异常,在catch语句中匹配成功,会执行finally 程序块,华东师范大学软件学院 王丽苹,2020/8/15,37,example finally catch(NullPointerException e) System.out.println(in catch get exception+e.getMessage(); finally System.out.println(In finally, it must executed!);,D:javaForLecturesrclecture9java JavaFinally In finally, it mu
43、st executed!,Note:没有出现异常,会执行finally 程序块,华东师范大学软件学院 王丽苹,2020/8/15,38,example finally catch(ArithmeticException e) System.out.println(in catch get exception: +e.getMessage(); finally System.out.println(In finally, it must executed!);,D:javaForLecturesrclecture9java JavaFinally In finally, it must exec
44、uted! Exception in thread main java.lang.NullPointerException at JavaFinally.main(JavaFinally.java:28),Note:出现异常,在catch中没有匹配成功,会执行finally 程序块,华东师范大学软件学院 王丽苹,2020/8/15,39,example finally,public class JavaFinally public static void main(String args) try return; catch(NullPointerException e) System.out
45、.println(in catch get exception: +e.getMessage(); finally System.out.println(In finally, it must executed!);,D:javaForLecturesrclecture9java JavaFinally In finally, it must executed!,Note:在main方法中return退出了方法,但仍然会执行finally 程序块,华东师范大学软件学院 王丽苹,2020/8/15,40,关于throw的进一步说明,throw语句表示出现了该种类型的异常。 一般来说在一个方法的内
46、部出现异常时,可以有两种处理方法: 第一种方法:在方法的内部异常出现的地方,即throw语句出现的地方,用try语句捕获异常,catch语句处理异常。 第二种方法:产生异常的方法不直接处理异常而是由调用该方法的其他方法来用try和catch程序块处理异常。,华东师范大学软件学院 王丽苹,2020/8/15,41,Throw-Example,public class Test public void division() int num1 = 10; int num2 = 0; if(num2=0) throw new ArithmeticException(); System.out.prin
47、tln(num1 + / + num2 + =+ (num1 / num2); System.out.println(Return from division.); public static void main(String args) Test t = new Test(); try t.division(); catch(ArithmeticException e) System.out.println(Returning from main); ,Pause: Where the exception is caught?,华东师范大学软件学院 王丽苹,2020/8/15,42,publ
48、ic class Test public void division() int num1 = 10; int num2 = 0; try if(num2=0) throw new ArithmeticException(); System.out.println(num1 + / + num2 + “=“+ (num1 / num2); catch(ArithmeticException e) e.printStackTrace(); System.out.println(Return from division.); public static void main(String args)
49、 Test t = new Test(); t.division(); System.out.println(Returning from main); ,Pause: Where is the exception caught.,华东师范大学软件学院 王丽苹,2020/8/15,43,如何使用自定义的异常,1. 定义自己的异常类 2. 抛出异常(throws throw) 3. 捕获异常(try,catch,finally),华东师范大学软件学院 王丽苹,2020/8/15,44,定义自己的异常类,需要确定你所定义的异常 自定义的异常一般是Java系统中标准的Java Exception类(
50、或者是Throwable,最好是Exception)的子类或者是你已经定义好的异常类的子类。,格式: Public class YourNewException extends Exception /end of your Exception class,class NotAValidAttribute extends Exception public NoValidAttribute () public NoValidAttribute (String err) super(err); ,华东师范大学软件学院 王丽苹,2020/8/15,45,抛出异常,一般需要两步来Throw an Exc
51、eption: 第一步:在method header后首先定义方法中将要抛出的异常类型列表,即为throws list 第二步:在需要报告异常的程序部分创建相应的异常的实例并且throw 出该实例。即为:throw instance,public void setName(String n) throws NotAValidAttribute if (n = null) throw new NotAValidAttribute(error: employees name is null); else name = n; ,注意:如果在throw语句中用try和catch直接处理了异常,那么th
52、rows语句可以省略。,华东师范大学软件学院 王丽苹,2020/8/15,46,Note:关于throws List的书写原则,throws语句位于方法头部的后面,用来声明方法内部已经抛出的并且还没有用try和catch程序块处理的异常的类型。 关于throws List的书写原则 并不是方法中抛出的所有的异常都需要在List中写出来,对于uncheckedException,可以不在List中写出来。,华东师范大学软件学院 王丽苹,2020/8/15,47,捕获异常,捕获自定义的异常和捕获java中内置的异常从实质上来说是一样的。 捕获自定义异常的条件: 事先定义好了自己的异常类, 已经在产
53、生异常的位置抛出了异常 捕获异常的格式,1. try 2. / 接受监视的程序块,在此区域可能产生异常 3. catch (MyExceptionType1 e) 4. / 对MyException1出现时的处理 5. catch (MyExceptionType2 e) 6. / 对MyException2出现时的处理 7. ,华东师范大学软件学院 王丽苹,2020/8/15,48,Example-定义并使用自己的异常类,Employee类包含的属性有:姓名,年龄,工资,部门(现在需要控制各个属性值的有效性。),class NotAValidAttribute extends Excepti
54、on public NotAValidAttribute () public NotAValidAttribute (String err) super(err);,程序实现时需要考虑的问题: 属性,方法都有哪些。 属性和方法的完整性。姓名的字符长度,年龄的有效范围,工资的范围是否有限制。,Note:为了能够向用户提供友好的错误提示信息,在实现中专门定义了一个类NotAValidAttribute,用来向用户提供关于属性出错误时的提示。,华东师范大学软件学院 王丽苹,2020/8/15,49,Example-employee/employee.java,public class employee private String name; private int age; private int pay; public employee(String n, int a, int p) throws NotAValidAttribute this.setName(n); this.setAge(a); this.setPay(p); public employee() public void setName(String n)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 智研咨询-电机行业市场调查、产业链全景及市场需求规模预测报告(2025版)
- 2025年01月中国贸促会直属单位公开招聘笔试历年典型考题(历年真题考点)解题思路附带答案详解
- 体格检查课件
- 人类的生殖系统课件
- Unit+3+Weather+Part+B 人教PEP版英语四年级下册
- Unit 1 Keeping Healthy Lesson 1【知识精研】五年级英语下学期同步备课(人教新起点版)
- Recycle Mike's happy days Day 7 Day 8 【知识精研】人教PEP版英语六年级下册
- 生活在大自然的怀抱里课件
- 6.1法律保护下的婚姻 课件 【知识精研】高中政治统编版选择性必修二法律与生活
- 合理安排文章结构课件
- 员工培训、考试、积分记录表
- 风冷热泵主机改造-模块机汇总
- 摄影摄像技术专业申请表
- 牡丹区中心医院食源性疾病监测培训课件
- 职业卫生工程控制技术课件
- 六年级下册综合实践活动教案(II)
- 高中英语常用词汇表(动词、名词、形容词和副词)
- 16万吨_年液化气综合利用装置废酸环保综合利用项目环境报告书
- T∕CAEPI 43-2022 电絮凝法污水处理技术规程
- 品牌简单之道讲义
- 水转印检验规范(吉利)
评论
0/150
提交评论