java异常体系基础入门-_第1页
java异常体系基础入门-_第2页
java异常体系基础入门-_第3页
java异常体系基础入门-_第4页
java异常体系基础入门-_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、/*内部类内部类类别:成员内部类: 在一个类的成员位置定义另外一个类,那么另外一个类就称作为成员内部类。成员内部类的访问方式:方式1:在外部类内提供一个方法创建内部类的对象进行访问。方式2:在其他类创建内部类的对象进行访问。创建的格式:外部类.内部类变量名 = new 外部类(.new 内部类(;注意:如果是静态内部类在其他类的创建对象方式:外部类.内部类变量名= new 外部类.内部类(;成员内部类要注意的事项:1. 成员内部类可以直接访问外部类成员。2. 如果成员内部类与外部类存在同名的成员,在内部类中默认是访问内部类的成员。3. 如果成员内部类出现了静态的成员,那么该成员内部类也必须使用

2、static修饰。4. 如果成员内部类是私有的,那么创建内部类的对象就只能在外部类提供方法创建。局部内部类:在一个类的方法内部定义另外一个类, 另外一个类就称作为局部内部类。局部内部类要注意:如果局部内部类访问了局部变量,那么该变量需要使用fianl修饰。(原因:因为生命周期不一致,所以内部类访问局部变量其实是一个复制品。匿名内部类 : 没有类名的类。匿名内部类的好处:简化书写。匿名内部类的使用前提:必须存在继承或者实现关系。匿名内部类的格式:new 父类(父接口匿名内部类的成员;异常:异常的体系:-|Throwable-| Error (错误错误一般是由于jvm或者是硬件引发的问题,所以我们

3、一般都不会通过代码去处理。-| Exception (异常 异常我们一般都会通过代码去处理的。异常的处理方式方式一:捕获处理捕获处理的格式try可能发生异常的代码catch(捕获的异常类型变量名处理异常的代码捕获处理要注意的细节:1. 如果一个try块中出现了异常的代码,经过处理之后,那么try-catch块外面的代码可以正常执行。2. 如果一个try块中出现了异常的代码,那么在try块中出现异常的代码后面的语句无法执行。3. 一个try块后面可以跟多个catch块,也就是一个try块可以捕获多种异常的类型,但是捕获的异常类型必须从小到大进行捕获。方式二:抛出处理(throw throws抛出

4、处理要注意的细节:1. 如果一个方法内部抛出了一个编译时异常对象,那么该方法必须要声明抛出。2. 如果调用了一个声明抛出编译时异常的方法,那么调用者必须要处理。3. 如果一个方法抛出了一个异常对象,那么该方法也会马上停止(一个方法遇到了throw关键字,那么该方法就会马上停止4. 在一种情况下只能抛出一种异常对象。throw 关键字是用于方法体之内抛出异常对象的,throws是用于方法声明上声明抛出异常类型的。*/class Demo1public static void main(String args/*sun提供了很多的异常类给我们用于描述程序中各种的不正常情况,但是sun 给我提供异常

5、类还不足以描述我们现实生活中所有不正常情况,那么这时候我们就需要自定义异常类。需求: 模拟feiQ上线的时候,如果没有插上网线,那么就抛出一个没有插上网线的异常,如果已经插上了网上,那么就正常显示好友列表。自定义异常类的步骤:自定义一个类继承Exception即可。*/自定义了一个没有网线的异常类了。class NoIpException extends Exceptionpublic NoIpException(String messagesuper(message; /调用了Exception一个参数的构造函数。class Demo2public static void main(Stri

6、ng argsip = null;tryfeiQ(ip; / 如果调用了一个声明抛出异常类型的方法,那么调用者必须要处理。catch(NoIpException ee.printStackTrace(;public static void feiQ(String ip throws NoIpExceptionif(ip=nullthrow new NoIpException("没有插网线啊,小白!"/*需求:模拟你去吃木桶饭,如果带钱少于了10块,那么就抛出一个没有带够钱的异常对象,如果带够了,那么就可以吃上香喷喷的地沟油木桶饭.*/定义没钱的异常class NoMoney

7、Exception extends Exception public NoMoneyException(String messagesuper(message;class Demo3public static void main(String argstryeat(9;catch(NoMoneyException ee.printStackTrace(;public static void eat(int money throws NoMoneyExceptionif(money<10throw new NoMoneyException("吃霸王餐"/*异常体系:-|

8、 Throwable 所有错误或者异常的父类-| Error(错误-| Exception(异常 异常一般都通过代码处理-| 运行时异常: 如果一个方法内部抛出了一个运行时异常,那么方法上可以声明也可以不声明,调用者可以以处理也可以不处理。-| 编译时异常(非运行时异常、受检异常: 如果一个方法内部抛出了一个编译时异常对象,那么方法上就必须要声明,而且调用者也必须要处理。运行时异常: RuntimeException以及RuntimeException子类都是属于运行时异常。编译时异常:除了运行时异常就是编译异常。疑问:为什么java编译器会如此严格要求编译时异常,对运行时异常如此宽松?运行时

9、异常都是可以通过程序员良好的编程习惯去避免,所以java编译器就没有严格要求处理运行时异常。*/class Demo4public static void main(String args throws InterruptedExceptionint arr = null;div(4,0,arr;Object o = new Object(;o.wait(;public static void div(int a , int b ,int arr if(b=0return;int c = a/b;if(arr!=null/*finally 块;finally块的使用前提是必须要存在try块才能使用。finally块的代码在任何情况下都会执行的,除了jvm退出的情况。fi

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论