8j的ava 西电.ppt

  1. 1、本文档共42页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
8j的ava 西电

异常的概念 异常处理方法 自定义异常类 断言 自定义异常类 在开发Java程序时,以下情况可能导致需要自定义异常类 所需的异常类型在Java标准异常体系中不存在 需要将某些实际的异常与Java标准异常相区分 使用其它package中定义的异常类会影响当前package的独立性与自包含性 自定义异常类 定义方法 自定义异常类是Exception类的子类,可包含普通类的内容 尽量不将自定义异常类作为RuntimeException类的子类,因为RuntimeException免检而我们希望自定义异常必检 自定义异常类的定义 //描述通信中客户端和服务器连接超时的异常 public class ServerTimeOutException extends Exception{ private String reason; private int port ; public ServerTimeOutException(String reason, int port){ this.reason = reason; this.port = port; } public String getReason(){ return reason; } public int getPort(){ return port; } } 自定义异常类的使用 // 抛出自定义异常 Public void connectMe(String serverName) throws ServerTimeOutException{ int success; int portToConnect = 80; success = open(serverName, portToConnect); if(success= -1){ throw new ServerTimedOutException(“Could not connect”,80); } } 自定义异常类的使用 // 捕获自定义异常并处理 Public void findServer(){… try{ connectMe(defaultServer); } catch (ServerTimeOutException e){ System.out.println(“Server timed out, try another”); try{ //try-catch语句块是可以嵌套的 connectMe(alternateServer); } catch (ServerTimeOutException e1) { System.out.println(“No server avaliable”); } } } // 例:TestMyException.java 异常的概念 异常处理方法 自定义异常类 断言 断言(Assertion) 断言是软件开发中常用的调试方式,很多语言(如C,C++等)都支持此机制,但支持方式不尽相同 Java中专门提供了assert语句,为Java程序提供一种错误检查机制 每个断言都包含一个布尔表达式 若程序没有错,则运行assert语句时该表达式的值应该为true 如果表达式的值为false,则系统将抛出一个错误 断言的定义 第一种形式 assert expr; expr为布尔表达式 运行该断言语句时,求出expr的值 若值为false,则说明程序处于不正确状态,系统抛出一个没有任何详细信息的AssertionError类型的错误对象,并退出 若值为true,则继续执行 断言的定义 第二种形式 assert expr1 : expr2; expr1为布尔表达式,expr2为一般表达式 运行该断言语句时,求出expr1的值 若值为false,则系统计算出expr2的值,并以这个值为参数调用AssertionError类的构造方法,创建一个包含详细信息的AssertionError对象,抛出并退出 若值为true,则expr2不被计算,程序继续执行 断言的使用(一) 保证控制流的正确性 在if-else语句和switch语句中,可在不应被执行的控制流下,使用assert false语句,若控制流异常,则会抛出AssersionError public class AssertionDemo { public static void main(Strin

文档评论(0)

liwenhua00 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档