设为首页 加入收藏

TOP

POCO C++库学习和分析 -- 异常、错误处理、调试 (一)
2014-11-24 03:15:31 】 浏览:9114
Tags:POCO 学习 分析 异常 错误 处理 调试

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

首页 上一页 1 2 3 4 5 下一页 尾页 1/5/5
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇HDU1556 color the ball][树状数.. 下一篇poj3006 Dirichlet's Theorem..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目