标签:function session exce 类图 bind 实现 pex 其他 rap
本文,我们来分享 MyBatis 的异常模块,对应 exceptions
包。如下图所示:
在 《精尽 MyBatis 源码解析 —— 项目结构一览》 中,简单介绍了这个模块如下:
定义了 MyBatis 专有的 PersistenceException 和 TooManyResultsException 异常。
实际上,MyBatis 不仅仅在 exceptions
包下有异常,在其他包下也有异常,整体如下类图:
下面,我们逐个包的异常看过看过去。
exceptions
包org.apache.ibatis.exceptions.IbatisException
,实现 RuntimeException 类,IBatis 的异常基类。代码如下:
|
org.apache.ibatis.exceptions.PersistenceException
,继承 IbatisException 类,目前 MyBatis 真正的异常基类。代码如下:
public class PersistenceException extends IbatisException {
|
org.apache.ibatis.exceptions.ExceptionFactory
,异常工厂。代码如下:
public class ExceptionFactory {
|
org.apache.ibatis.exceptions.TooManyResultsException
,继承 PersistenceException 类,查询返回过多结果的异常。期望返回一条,实际返回了多条。代码如下:
public class TooManyResultsException extends PersistenceException {
|
parsing
包org.apache.ibatis.parsing.ParsingException
,继承 PersistenceException 类,解析异常。代码如下:
public class ParsingException extends PersistenceException {
|
实际上,我们会看到其他包,会和 parsing
包一样,都会定义其独有的异常类。但是,代码都是相同的。所以,这里就简单整理如下:
reflection
包:ReflectionExceptionlogging
包:LogExceptionbuilder
包:BuilderException、IncompleteElementExceptionscripting
包:ScriptingExceptionbinding
包:BindingExceptiontype
包:TypeExceptionsession
包:SqlSessionExceptioncache
包:CacheExceptiontransaction
包:TransactionExceptiondatasource
包:DataSourceExceptionexecutor
包:ResultMapException、ExecutorException、BatchExecutorExceptionplugin
包:PluginException标签:function session exce 类图 bind 实现 pex 其他 rap
原文地址:https://www.cnblogs.com/siye1989/p/11619665.html