黑马程序员技术交流社区

标题: 问题 [打印本页]

作者: 菇凉斋    时间: 2016-4-8 00:17
标题: 问题
多个catch的应用场景,和try catch嵌套的应用场景?求解惑!!!!
作者: dwt1397261    时间: 2016-4-8 00:36
一楼                        
作者: minge123    时间: 2016-4-8 00:39
上课不好好听
作者: 安先森    时间: 2016-4-8 00:40
Try-Catch机制使用场景

(一)在什么场景下加Try-Catch机制




1)以业务逻辑功能为单位,在最上层加Try-Catch机制。为什么要这样做呢?这主要是增加程序的健壮性,防止因抛出异常过多,导致程序崩溃。

  try
{
   //业务逻辑功能
   //......
}
catch (Exception ex)
{
   //记录日志
   //......
}





2)底层代码,在可能出错的地方加Try-Catch机制,用Catch侦测具体的异常,然后就具体的异常,采取相应的解决方案。



try
{
    sent += sendSAEA.AcceptSocket.Send(buffer, sent, size - sent, SocketFlags.None);
}
catch (ObjectDisposedException ex)    //Socket 已关闭
{
    break;
}
catch (SocketException ex)
{
    //socket异常,等待后继续尝试发送
    Thread.Sleep(this.socketListenerSettings.MSDelayForNextSend);
}
catch (Exception ex)
{
    this.SaveLog("Send方法出错,错误描述为:" + ex.Message.ToString());
    break;
}





3)底层代码,在需异常追踪时加Try-Catch机制,在Catch块中抛出自定义异常,调试时可迅速定位到错误代码段。

try
{
    //底层代码
    //......
}
catch (Exception ex)
{
    throw new Exception("xxx方法出错,描述:" + ex.Message.ToString());
}
作者: 菇凉斋    时间: 2016-4-8 01:26
谢谢大神们解惑..非常感谢!!!!
作者: F305176    时间: 2016-4-9 22:17
加油~~~~
作者: clvslyf    时间: 2016-4-9 23:46
来学习        




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2