如题
解决方案 »
- 程序里有个XmlDocument对象,如何转换为FileStream
- 字符串截取问题
- update set 的一点问题。
- 急啊~~~新手提问:GridView中Grid_RowUpdating的问题
- 如何用C#把OCX控件完全封装到一个组件中?
- ibatisnet+access sql 语句中有空格
- ★★数据绑定到datagrid,为了占满纸想多显示些空行,怎么办呢★★
- 急死我了,大家帮帮忙,谢谢!如何在.net环境下做打印控制??谢谢!
- 初学.net!请问应该怎么判断子结点被点击!
- string.Split(char[]) 只能用单个字符进行分隔吗??
- create table 中我想动态的添加字段????
- 朋友们一定要帮帮我 一个在C#.net平台下如何去掉标题栏还可以显示系统菜--急急.. 100分做为酬谢
如果你需要,简单点,可以直接用Exception.Message来放置用户提示。为了防止混淆,也可以派生一个异常类,提供一个用户提示信息的的属性。
在抛出异常的地方设置一下属性,处理的时候直接打出来就好了。
throw new Exception
这种情况下,在需要抛出错误的上下文里(比如执行文件删除操作的那个方法),你是可以知道错误的原因的,因此在那里提供一个详细的错误提示是没问题的。如果除了给出错误提示,还需要作进一步的错误处理,你完全可以派生一个FileInUseException来详细地表示这种错误,并为这个异常类提供诸如FileList的属性给处理错误程序。这样不比结构化方法里面用错误号判断优越得多吗?
不好意思,我还是个菜鸟.
我需要将删除正在使用文件的错误与其他错误区别开来,这该如何做到呢?
一个可能的实现如下
public class FilesInUserException : ApplicationException
{
private string[] mFileNames;
public FilesInUserException (string[] lockedFileNames, string message) : base (message)
{
mFileName = lockedFileNames;
}
public string[] LockedFileNames
{
get { return this.mFileNames; }
}
}在需要的时候抛出这个异常,例如在某个操作文件的方法里
public void AccessFiles ()
{
string[] lockFileNames;
//……
//遇到几个被锁定无法访问的文件,已经把名字的列表放在数组lockFileNames里面了
throw new FilesInUserException ();
//……
}在需要处理这个异常的地方,给出针对这个异常类型的处理方案
public void CallerMethod ()
{
//……
try
{
AccessFiles ()
}
catch (FilesInUserException e)
{
MessageBox ("文件被锁定,无法访问");
//其他你想要的处理
}
catch (Exception e)
{
MessageBox ("发生未知异常");
//缺省的错误处理
}
//……
}