???????-4

????ExManagement??

??????????ExManager???ErrorInfo???????к????????????????顣?????-5

???????-5

????ErrorInfo??????ErrorId????????ErrorString??????????????????????????н??????????????(XML????????????)?????

????ExManager???????????????????????????????????????????????????????????????????????????????????????????????????С??????????????????????????????????????????????????????????????ProcessException()????????????????????????????????????????????????(??????ò??????)??????????????????????????????????????????????y????????д????

????ExManagement.Handler??

??????????????????????????DefaultExHandler??????ExHandlerBase?????С?????????????????ProcessExeception??????

public override string ProcessExeception(Exception ex?? string strUserId?? string strErrorCode)

{

// ????????

LogEx(ex?? strUserId?? strErrorCode);

 

switch(m_ExHandlerConfig.ReturnMode)

{

// ????????????????

case ExManagement.ExReturnMode.ErrorCode:

{

return strErrorCode;

}

// ?????????????????????????????

case ExManagement.ExReturnMode.ErrorString:

{

return ExManagement.ExManager.GetErrorInfoByCode(strErrorCode);

}

// ???????????????????Exception.Message??

case ExManagement.ExReturnMode.ExceptionString:

{

return ex.Message;

}

// ???????????

case ExManagement.ExReturnMode.Exception:

{

// ?????ò??????????????????????

if(ex.GetBaseException() == ex)

{

throw new Exception(string.Format("{0}??????:{1}??{2}"??

m_ExHandlerConfig.Name?? strErrorCode?? ex.Message)?? ex);

}

// ????????????????????????????????

else

{

throw ex;

}

}

default:

{

return null;

}

}

}