try
{
var hkml = GetRegistryKey(rootKey);
var subkey = hkml.CreateSubKey(subKey);
if (subkey != null && keyName != string.Empty)
subkey.SetValue(keyName, keyValue, RegistryValueKind.String);
}
catch (Exception ex)
{
Log4Helper.Error("创建注册表错误" + ex);
throw new Exception(ex.Message,ex);
}
FileStream fs = null;
try
{
fs = FileStream();
}
catch (FileNotFoundException e)
{
//抛出一个不同的异常,将异常信息包含在其中,并将原来的异常设置为内部异常
throw new NameNotFoundException();
}
catch (IOException e)
{
//抛出一个不同的异常,将异常信息包含在其中,并将原来的异常设置为内部异常
throw new NameNotFoundException();
}
finally
{
if (fs != null)
{
fs.close();
}
}
/// <summary>
/// 格式化异常消息
/// </summary>
/// <param name="e">异常对象</param>
/// <param name="isHideStackTrace">是否隐藏异常规模信息</param>
/// <returns>格式化后的异常信息字符串</returns>
public static string FormatMessage(this Exception e, bool isHideStackTrace = false)
{
var sb = new StringBuilder();
var count = 0;
var appString = string.Empty;
while (e != null)
{
if (count > 0)
{
appString += " ";
}
sb.AppendLine(string.Format("{0}异常消息:{1}", appString, e.Message));
sb.AppendLine(string.Format("{0}异常类型:{1}", appString, e.GetType().FullName));
sb.AppendLine(string.Format("{0}异常方法:{1}", appString, (e.TargetSite == null ? null : e.TargetSite.Name)));
sb.AppendLine(string.Format("{0}异常源:{1}", appString, e.Source));
if (!isHideStackTrace && e.StackTrace != null)
{
sb.AppendLine(string.Format("{0}异常堆栈:{1}", appString, e.StackTrace));
}
if (e.InnerException != null)
{
sb.AppendLine(string.Format("{0}内部异常:", appString));
count++;
}
e = e.InnerException;
}
return sb.ToString();
}
/// <summary>
/// 检查字符串是空的或空的,并抛出一个异常
/// </summary>
/// <param name="val">值测试</param>
/// <param name="paramName">参数检查名称</param>
public static void CheckNullOrEmpty(string val, string paramName)
{
if (string.IsNullOrEmpty(val))
throw new ArgumentNullException(paramName, "Value can't be null or empty");
}
/// <summary>
/// 请检查参数不是空的或空的,并抛出异常
/// </summary>
/// <param name="param">检查值</param>
/// <param name="paramName">参数名称</param>
public static void CheckNullParam(string param, string paramName)
{
if (string.IsNullOrEmpty(param))
throw new ArgumentNullException(paramName, paramName + " can't be neither null nor empty");
}
/// <summary>
/// 检查参数不是无效,并抛出一个异常
/// </summary>
/// <param name="param">检查值</param>
/// <param name="paramName">参数名称</param>
public static void CheckNullParam(object param, string paramName)
{
if (param == null)
throw new ArgumentNullException(paramName, paramName + " can't be null");
}
/// <summary>
/// 请检查参数1不同于参数2
/// </summary>
/// <param name="param1">值1测试</param>
/// <param name="param1Name">name of value 1</param>
/// <param name="param2">value 2 to test</param>
/// <param name="param2Name">name of vlaue 2</param>
public static void CheckDifferentsParams(object param1, string param1Name, object param2, string param2Name)
{
if (param1 == param2) {
throw new ArgumentException(param1Name + " can't be the same as " + param2Name,
param1Name + " and " + param2Name);
}
}
/// <summary>
/// 检查一个整数值是正的(0或更大)
/// </summary>
/// <param name="val">整数测试</param>
public static void PositiveValue(int val)
{
if (val < 0)
throw new ArgumentException("The value must be greater than or equal to 0.");
}
/// <summary>
/// 对某对象执行指定功能与后续功能,并处理异常情况
/// </summary>
/// <typeparam name="T">对象类型</typeparam>
/// <param name="source">值</param>
/// <param name="action">要对值执行的主功能代码</param>
/// <param name="failureAction">catch中的功能代码</param>
/// <param name="successAction">主功能代码成功后执行的功能代码</param>
/// <returns>主功能代码是否顺利执行</returns>
public static bool TryCatch<T>(this T source, Action<T> action, Action<Exception> failureAction,
Action<T> successAction) where T : class
{
bool result;
try
{
action(source);
successAction(source);
result = true;
}
catch (Exception obj)
{
failureAction(obj);
result = false;
}
return result;
}
/// <summary>
/// 对某对象执行指定功能,并处理异常情况
/// </summary>
/// <typeparam name="T">对象类型</typeparam>
/// <param name="source">值</param>
/// <param name="action">要对值执行的主功能代码</param>
/// <param name="failureAction">catch中的功能代码</param>
/// <returns>主功能代码是否顺利执行</returns>
public static bool TryCatch<T>(this T source, Action<T> action, Action<Exception> failureAction) where T : class
{
return source.TryCatch(action,
failureAction,
obj => { });
}
/// <summary>
/// 对某对象执行指定功能,并处理异常情况与返回值
/// </summary>
/// <typeparam name="T">对象类型</typeparam>
/// <typeparam name="TResult">返回值类型</typeparam>
/// <param name="source">值</param>
/// <param name="func">要对值执行的主功能代码</param>
/// <param name="failureAction">catch中的功能代码</param>
/// <param name="successAction">主功能代码成功后执行的功能代码</param>
/// <returns>功能代码的返回值,如果出现异常,则返回对象类型的默认值</returns>
public static TResult TryCatch<T, TResult>(this T source, Func<T, TResult> func, Action<Exception> failureAction,
Action<T> successAction)
where T : class
{
TResult result;
try
{
var u = func(source);
successAction(source);
result = u;
}
catch (Exception obj)
{
failureAction(obj);
result = default(TResult);
}
return result;
}
/// <summary>
/// 对某对象执行指定功能,并处理异常情况与返回值
/// </summary>
/// <typeparam name="T">对象类型</typeparam>
/// <typeparam name="TResult">返回值类型</typeparam>
/// <param name="source">值</param>
/// <param name="func">要对值执行的主功能代码</param>
/// <param name="failureAction">catch中的功能代码</param>
/// <returns>功能代码的返回值,如果出现异常,则返回对象类型的默认值</returns>
public static TResult TryCatch<T, TResult>(this T source, Func<T, TResult> func, Action<Exception> failureAction)
where T : class
{
return source.TryCatch(func,
failureAction,
obj => { });
}
[__DynamicallyInvokable]
public virtual string Message
{
[__DynamicallyInvokable]
get
{
if (this._message != null)
{
return this._message;
}
if (this._className == null)
{
this._className = this.GetClassName();
}
return Environment.GetRuntimeResourceString("Exception_WasThrown", new object[] { this._className });
}
}
public static string StackTrace
{
[SecuritySafeCritical]
get
{
new EnvironmentPermission(PermissionState.Unrestricted).Demand();
return GetStackTrace(null, true);
}
}
internal static string GetStackTrace(Exception e, bool needFileInfo)
{
StackTrace trace;
if (e == null)
{
trace = new StackTrace(needFileInfo);
}
else
{
trace = new StackTrace(e, needFileInfo);
}
return trace.ToString(StackTrace.TraceFormat.Normal);
}
public StackTrace(Exception e, bool fNeedFileInfo)
{
if (e == null)
{
throw new ArgumentNullException("e");
}
this.m_iNumOfFrames = 0;
this.m_iMethodsToSkip = 0;
this.CaptureStackTrace(0, fNeedFileInfo, null, e);
}
[__DynamicallyInvokable]
public virtual Exception GetBaseException()
{
Exception innerException = this.InnerException;
Exception exception2 = this;
while (innerException != null)
{
exception2 = innerException;
innerException = innerException.InnerException;
}
return exception2;
}
[__DynamicallyInvokable]
public Exception InnerException
{
[__DynamicallyInvokable, TargetedPatchingOptOut("Performance critical to inline this type of method across NGen image boundaries")]
get
{
return this._innerException;
}
}
private string ToString(bool needFileLineInfo, bool needMessage)
{
string className;
string str = needMessage ? this.Message : null;
if ((str == null) || (str.Length <= 0))
{
className = this.GetClassName();
}
else
{
className = this.GetClassName() + ": " + str;
}
if (this._innerException != null)
{
className = className + " ---> " + this._innerException.ToString(needFileLineInfo, needMessage) + Environment.NewLine + " " + Environment.GetRuntimeResourceString("Exception_EndOfInnerExceptionStack");
}
string stackTrace = this.GetStackTrace(needFileLineInfo);
if (stackTrace != null)
{
className = className + Environment.NewLine + stackTrace;
}
return className;
}
[TargetedPatchingOptOut("Performance critical to inline this type of method across NGen image boundaries")]
public __DynamicallyInvokableAttribute()
{
}
机械节能产品生产企业官网模板...
大气智能家居家具装修装饰类企业通用网站模板...
礼品公司网站模板
宽屏简约大气婚纱摄影影楼模板...
蓝白WAP手机综合医院类整站源码(独立后台)...苏ICP备2024110244号-2 苏公网安备32050702011978号 增值电信业务经营许可证编号:苏B2-20251499 | Copyright 2018 - 2025 源码网商城 (www.ymwmall.com) 版权所有