




已阅读5页,还剩9页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Java异常处理异常: 程序运行时发生的非正常情况 发生异常 程序意外终止,控制权返回给调用者Java的异常类:Throwable(java异常的根类) Error 系统级错误 一般不能恢复 Exception 程序的实现过程中的异常运行时异常 指在程序运行中不一定要扑获的异常 比如:NullPointerException ArrayIndexOutOfBoundsException ArithmeticException非运行时异常:指程序运行中一定要扑获的异常比如:SQLExceptionIOExceptionClassNotFoundExceptionpublic class TestException public int testException(int a,int b) int arr=1,5,3,8; try System.out.println(arr6);return a/b; catch (ArithmeticException e) System.out.println(分母不能为零n+e.toString();return -1;catch(ArrayIndexOutOfBoundsException ae)ae.printStackTrace();/打印错误堆栈信息System.out.println(数组下标越界);return -1;catch(Exception ex) System.out.println(我的任务是扑获前面的catch没有扑获的异常);return -1;finallySystem.out.println(我是无论如何都要执行的代码); public static void main(String args) TestException test=new TestException();int result=test.testException(8, 0);if(result-1)System.out.println(运行正常 结果:+result);elseSystem.out.println(出现异常);System.out.println(程序往下执行);使用多重catch子句要注意:在前面的异常级别不能大于后者finally是异常处理语句结构的一部分,表示无论什么情况都要执行的模块finally语句的主要作用是在try或catch转到其他部分前做的一些“善后”工作。比如:关闭打开的文件,释放链接、内存等系统资源。throw关键字用来抛出一个异常。程序会在throw语句后立即终止static void test() try throw new NullPointerException(抛出空指针异常);/抛出一个异常 catch(NullPointerException e) System.out.println(扑获空指针异常);throw e;/再次抛出此异常public static void main(String args) try test(); catch(NullPointerException e) System.out.println(扑获 + e);throws关键字 throws标明方法中可能抛出的各种异常但不处理它,即回避此异常,而交给调用者处理 public class TestExce public static void main(String args) TestEx test=new TestEx(); try test.get(1,0); catch(Exception e) e.printStackTrace(); class TestExpublic void get(int a,int b) throws Exceptionint c=a/b;System.out.println(这个方法可能会产生异常,请调用者处理+c);自定义异常public class TestMyException public void testMyException(int val) throws MyException if (val 0) throw new MyException(出现异常,参数不能小于零); else System.out.println(val);public static void main(String args) TestMyException test=new TestMyException();try test.testMyException(1); catch (MyException e) System.out.println(e.getMsg();class MyException extends Exception private String msg;public MyException(String msg) this.msg = msg;public String getMsg() return this.msg;垃圾回收 GC在程序的运行时环境中,Java虚拟机提供了一个系统级的垃圾回收器线程,它负责自动回收那些无用对象所占用的内存垃圾回收具有以下特点1. 只有当对象不再被程序中的任何引用变量引用时,它的内存才可能被回收。2. 程序无法迫使垃圾回收器立即执行垃圾回收操作。3. 当垃圾回收器将要回收无用对象的内存时,先调用该对象的finalize()方法,通常不使用 原因你不确定什么时候执行此方法甚至是否会执行此方法 以下两个方法作用相同System.gc(); /运行垃圾回收器 Runtime.getRuntime().gc();public class TestGC SuppressWarnings(unused)public static void testMyFinalize()MyFinalize myFinalize=new MyFinalize();System.out.println(对象被创建);myFinalize=null;System.gc();System.runFinalization();/JVM退出时 为还未执行finalize()的对象执行finalize()System.out.println(对象被回收); public static void testMemory() Runtime rt=Runtime.getRuntime(); System.out.printf(JVM为对象分配总内存空间:%d%n,rt.totalMemory(); System.out.printf(JVM中对象可以使用的剩余内存空间:%d%n,rt.freeMemory(); Object objs=new Object20000; for(int i=0;iobjs.length;i+) Object obj=new Object(); objsi=obj; System.out.printf(产生大量的对象后可以使用的剩余内存:%d%n, rt.freeMemory(); objs=null; rt.gc(); rt.runFinalization(); System.out.printf(回收对象后后可以使用的剩余内存:%d%n,rt.freeMemory(); System.out.printf(总内存:%d%n, rt.totalMemory(); public static void main(String args) /testMyFinalize();testMemory();class MyFinalizeOverrideprotected void finalize() throws Throwable System.out.println(调用finalize()的对象的内存地址哈希码值:+this.hashCode();作业:1 编写一个类,在main()方法中的try块中抛出Exception异常。传递一个字符串参数 给 Excepti
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 竹林儿童美术课件图片
- 端午节主题班会课件
- 2025年智能分拣系统合作协议书
- 正品包包出让协议书范本
- 网球比赛免责协议书范本
- 公司劳务免责协议书范本
- 地面保护合同协议书范本
- 放弃协议书范本保险
- 民间搬运协议书范本
- 公司生产承包协议书范本
- 2025年电力工程师职称考试试卷及答案
- 建筑施工脚手架安全技术统一标准
- 鞍钢劳研考试题库及答案
- T/CECS 10330-2023抗污易洁氟碳涂层金属板
- 2025年金融衍生品市场创新与风险防范策略在金融风险管理领域的应用与挑战报告
- 成都锦华药业有限责任公司生物制药改(扩)建项目环评报告
- 招考辅警 面试题及答案
- 液碱泄漏应急处置培训
- 工伤误工赔偿协议书
- 《四川天府新区直管区国土空间总体规划(2021-2035年)》
- 父子借款购房协议书
评论
0/150
提交评论