【高手进】关于异常处理的讨论
关于异常处理有几个很困扰的问题,希望有人能指点下!
先谢谢了!
1. 关于异常处理有哪些经典的书籍呢? 可以推荐下,想仔细阅读下!
2. 假设系统类 httpwebrequest 的 create 方法会发生异常 exceptionA 和 exceptionB,甚至更多的不熟悉的异常名称!
有什么办法可以知道,create方法下的所有系统异常名称??? (查看msdn的create方法看不到其可能会发生异常的名称)
3. 我系统中有个类 webrequest
//简化版的
class webrequest
{
字段,属性....
public void get(url,x1,x2,x3,x4) //获取某网站html
{
try
{
此处启用1个线程去 获取指定网址的部分内容!!
}
catch(xx)
{
超时或者网络断掉了
}
}
}
现在假设有100个webrequest的实例 同时访问自己的url。
可是,按照上方设计的类 如果一个实例出现断网异常,就提醒1次; 那100个线程岂不是 提100次??
有什么更好的办法 ,当多个线程发现断网的时候,只提示1次 断网错误?
[解决办法]
1,异常处理说的比较好的个人认为:Windows核心编程,CLR via C#
2,了解一下Create是有什么活动可能产生什么异常,程序编写者要预先知道代码可能的异常,无法捕获的异常需要以日志形式输出和记录;
3,webrequest (题外话:同一个网址是很难一次请求100个,服务端会配置或者本机默认是2个并发请求,否则直接阻塞)因为请求出现的异常是有先后顺序的,异常是要处理的,不处理的异常会导致程序出现不可预料的错误,你应该throw该异常使程序退出,或者在你可以预知的情况下直接“内部消化”;
[解决办法]