- 1、本文档共76页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
7.3 线程的使用方法 7.3.1创建Thread子类构造线程 7.3.2 实现Runnable接口构造线程 7.4 线程同步 7.4.1使用多线程造成的数据混乱 7.4.2 同步线程 Java的基本理念是“结构不佳的代码将不能运行”。 编译期的错误会由编译器侦测到 执行期的错误会引发异常 7.1.1 Java的异常处理机制 在Java中,把异常分为错误(Error)与异常(Exception)两大类。(如下页所示) Exception类有自己的方法和属性。它的构造方法有两个: public Exception ( ); public Exception (String s); 7.1.1 Java的异常处理机制 系统定义的运行异常 7.1.2 异常的抛出 1、系统自动抛出的异常 【例7-1】创建一个有错误的程序,测试异常抛出的情况。 1. /* 测试除数为0时抛出的异常 */ 2. class Example7_1 3. { 4. public static void main(String[] args) 5. { 6. int a=5,d=0; 7. System.out.println(a/d); 8. } 9. } 7.1.3 异常处理 异常处理的方法有二种:一种方法是使用try…catch…finally结构对异常进行捕获和处理;另一种方法是通过throws和throw抛出异常。 下面重点介绍使用try…catch…finally结构对异常进行捕获和处理。 try…catch…finally结构对异常进行捕获和处理的形式: try{ 可能出现异常的程序代码 } catch(异常类1 变量1) { 异常类1对应的异常处理代码 } catch(异常类2 变量2) { 异常类2对应的异常处理代码 } ... [finally] { 无论异常是否发生都要执行的代码 } 【例7-2】应用异常处理修改例7-1。 class Example7_2 { public static void main(String[] args) { int a=5,b=0; try{ System.out.println(a/b); } catch(Exception e){ System.out.println(“除数为0); } } } 【例7-3】数组下标越界引发异常 class Example7_3 { public static void main(String[] args) { int a[]={1,2,3,4,5}; int sum=0; try { for (int i=0;i=5 ;i++ ) {sum+=a[i];} System.out.println(sum=+sum); }catch(ArrayIndexOutOfBoundsException e) { System.out.println(发生异常原因:+e); } finally { System.out.println(程序运行结束!); } } } 创建自己的异常(1) 类名称: 用于标识异常的类型 要自己定义异常类,一定要继承某个既有的异常型别 异常的方法:从基类Throwable继承的方法 String getMessage( ):取得细节消息 String getLocalizedMessage: 取得细节消息(特定语系) String toString: 返回 Throwable 的简短描述(详细的消息,如果有的话) void printStackTrace (...):打印出Throwable 和 Throwable 的调用堆栈路径 上述函数依序提供更详细信息 Throwable fillStackTrace ( ):把 Stack 状态记录于 Throwable ,用于重掷 重掷异常(或重新抛出异常) 想重新掷出刚才捕捉过的异常,特别是在运用Exception捕获所有可能的异常时,用 throw 关键字将同一个异常重新掷出。 由于已获得当前异常的reference,所以只需简单地重新掷出那个reference即可。下面是一个例子: catch(Exception e) { System.out.println(“一个异常
文档评论(0)