POCOC++库学习和分析--异常、错误处理、调试.docxVIP

POCOC++库学习和分析--异常、错误处理、调试.docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
POCO C++库学习和分析 -- 异常、错误处理、调试1. 异常处理 C++同C语言相比,提供了异常机制。通过使用try,catch关键字可以捕获异常,这种机制使得程序员在程序异常发生时,可以通过判断异常类型,来决定程序是否继续执行,并在程序结束之前优雅的释放各类资源。当然对于C++的异常机制也存在着很多的争议。在这里,并不对此展开讨论,只介绍一下Poco中的异常类。?Poco中的异常类:?1. 所有的异常类都是Poco::Exception的子类。?2. Poco::Exception继承自std::exception类。?3. Foundation库中涉及的异常类,包括了下面一些:?a) Poco::LogicException类负责处理程序错误,包括了:?AssertionViolationException?NullPointerException?NullValueException?BugcheckException?InvalidArgumentException?NotImplementedException?RangeException?IllegalStateException?InvalidAccessException?SignalException?UnhandledException?b) Poco::ApplicationException类负责处理应用程序相关的错误,即使用Poco库的用户自定义异常。?c) Poco::RuntimeException类负责处理程序运行时的错误,包括了:?RuntimeException?NotFoundException?ExistsException?TimeoutException?SystemException?RegularExpressionException?LibraryLoadException?LibraryAlreadyLoadedException?NoThreadAvailableException?PropertyNotSupportedException?PoolOverflowException?NoPermissionException?OutOfMemoryException?DataException?DataFormatException?SyntaxException?CircularReferenceException?PathSyntaxException?IOException?ProtocolException?FileException?FileExistsException?FileNotFoundException?PathNotFoundException?FileReadOnlyException?FileAccessDeniedException?CreateFileException?OpenFileException?WriteFileException?ReadFileException?UnknownURISchemeException?成员函数及数据定义:?1. Poco::Exception包括了一个名字,这是一个静态的字符串,用来描述异常本身。比如说LogicException名字为Logic exception,TimeoutException名字为Timeout。?2. Poco::Exception还包含了一个字符串消息,这是用来进一步描述异常的。使用的的人可以在运行时定义它。比如都是LogicException异常,函数一处抛出异常时可定义为Function1,函数二处抛出时异常时可定义为用Function2,它可以用来说明异常发生的具体位置和原因。?3. 一个可选的嵌套异常类?4. 构造函数:?a) 可以使用0个,1个或2个字符串参数来构造异常。在Poco::Exception内部存储的时候,第二个字符串会使用字符:和第一个字符串串联。?b) 构造时如果使用了字符串和嵌套异常的方式,嵌套异常会被复制一份。?5. Poco::Exception支持拷贝和赋值运算符?6. const char* name()?返回异常的名称?7. const std::string message()?返回在构造时传入的消息字符串?8. std::string displayText() const?同时返回异常名字和消息字符串,中间使用: 分隔?9. const Exception* nested() const?如果存在嵌套异常的话,返回之歌指向嵌套异常的指针,否则返回0?10. Exception* clone() const?返回一个异常的拷贝?11. void rethrow() co

文档评论(0)

天马行空 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档