对于使用自定义异常的时机和用法很有疑惑,举个例子问一下:public int BinSearch(int[] arr , int x , int start , int end)
{
if(start < 0 || end > arr.Count-1)
{
throw new IndexOutOfRangeException("");
}
}如上例,假如要写一个查找,需要预先判断一下查找的上下限是不是超过了数组的界限,如果超过则抛出异常。
疑问如下:
1 这个异常有没有必要自己写,还是干脆让默认的异常抛出就好了,因为如果用到start和end的时候,如果会越界,程序自己也会抛出异常
2 如果要自己写这个异常,需不需要定义excetion.source之类的东西,我只知道可以在.message属性里写上"XX函数出错"这样的信息
3 如果要在抛出的异常中写出namespace.classname.functionname这样形式的路径以方便出异常的时候查找位置,那么有什么方法可以获得namespace.classname.functionname这样的函数全名呢?
{
if(start < 0 || end > arr.Count-1)
{
throw new IndexOutOfRangeException("");
}
}如上例,假如要写一个查找,需要预先判断一下查找的上下限是不是超过了数组的界限,如果超过则抛出异常。
疑问如下:
1 这个异常有没有必要自己写,还是干脆让默认的异常抛出就好了,因为如果用到start和end的时候,如果会越界,程序自己也会抛出异常
2 如果要自己写这个异常,需不需要定义excetion.source之类的东西,我只知道可以在.message属性里写上"XX函数出错"这样的信息
3 如果要在抛出的异常中写出namespace.classname.functionname这样形式的路径以方便出异常的时候查找位置,那么有什么方法可以获得namespace.classname.functionname这样的函数全名呢?
解决方案 »
- 怎么给listview绑定数据
- C#FTP下载问题
- 同时提取多个字符分别在多个textBox标签显示
- 关于ComboBox的问题?谢谢!
- C#用DrawCurve(Pen,PointF[])如何选取部分数组?
- this.Load += new System.EventHandler(this.Form1_Load)作用详解?
- 資源釋放的問題
- 解决问题,马上给分
- 用html workshop制作帮助文件怎么总显示不了图片??--------(等待)
- A窗体如何调用B窗体中一个button的事件?最好有简单代码
- C#中 messageBox 确定按钮变成英文ok 大家帮帮忙!在线等
- html编辑器问题:收不到 onbeforepaste 事件
{
if(start < 0 || end > arr.Count-1)
{
throw new IndexOutOfRangeException("namespace.classname.functionname");
}
}
是没有必要2 如果要自己写这个异常,需不需要定义excetion.source之类的东西
也没有必要, Exception里面已经有挺多信息了:
catch(Exception e)
{
MessageBox.Show(e.TargetSite.DeclaringType.Name + "."+ e.TargetSite.Name);
MessageBox.Show(e.StackTrace);
}