1. 如果有个异常,
try
{
//打开文件
...代码略
}
catch (Exception)
{
//是否重试?
//是的话重新执行try中的语句
}如何达到点击“是”重新执行try中的语句?2. 有的数据库操作,出错后只提示“系统错误”,非得用try catch,然后将ex.Message显示出来才能看到具体的错误提示,有没有其它方法能够直接看到出错信息,而不用我每次都得加上try catch块才能看到。3. C#的Form程序在非调试模式下,是不是出错后都会出现一个“继续/退出”的对话框,点击继续还能运行,那是不是说明C#帮我们内置了异常处理?4. 在开发环境下,有没有什么操作可以让我忽略所有的try catch块?类似VB 6.0开发环境中的选项“发生错误时中断”以上问题解决后立即结帖:)
try
{
//打开文件
...代码略
}
catch (Exception)
{
//是否重试?
//是的话重新执行try中的语句
}如何达到点击“是”重新执行try中的语句?2. 有的数据库操作,出错后只提示“系统错误”,非得用try catch,然后将ex.Message显示出来才能看到具体的错误提示,有没有其它方法能够直接看到出错信息,而不用我每次都得加上try catch块才能看到。3. C#的Form程序在非调试模式下,是不是出错后都会出现一个“继续/退出”的对话框,点击继续还能运行,那是不是说明C#帮我们内置了异常处理?4. 在开发环境下,有没有什么操作可以让我忽略所有的try catch块?类似VB 6.0开发环境中的选项“发生错误时中断”以上问题解决后立即结帖:)
Err0:
string str = "JQK";
try
{
decimal val = decimal.Parse(str); }
catch (System.Exception)
{
goto Err0;
}
比如磁盘没有空间了,网络断了等。你的程序没有处理异常,那最后只能是.net运行时接管了,他问你“继续还是结束?”。
如果你用自己的try-catch块捕获了异常,那至少表面上你的程序会漂漂亮亮的,优雅的结束,而不是显示醒目的红叉加上“继续还是结束?”。还是那句话,异常这东西应用的地方原则上是你实在无法预料的情况。你的程序逻辑都对,但一些事情实在不是你的控制的范围,这种场合在用异常。至少原则上是这样。就第一个问题,可以用Label加上goto语句,我自己没用过。还是请先理解异常到底应该用在什么地方这个基本问题再说吧。
void 方法()
{ try
{
//打开文件
...代码略
}
catch (Exception)
{
return "异常";
}}--------------------------------------------------------
if(方法=="异常) 方法();
try
{
//打开文件
...代码略
}
{
//是否重试?
//是的话重新执行try中的语句
}如何达到点击“是”重新执行try中的语句?
毫无意义!因为一次执行不成功,执行两次就成功了么?出现异常要分析异常,然后排除后解决,否则光是重复执行,没有意义。2. 有的数据库操作,出错后只提示“系统错误”,非得用try catch,然后将ex.Message显示出来才能看到具体的错误提示,有没有其它方法能够直接看到出错信息,而不用我每次都得加上try catch块才能看到。
异常就是在try catch中捕获的。有异常抛出的代码必须加try catch,否则得不到异常消息
3. C#的Form程序在非调试模式下,是不是出错后都会出现一个“继续/退出”的对话框,点击继续还能运行,那是不是说明C#帮我们内置了异常处理?
你将断点插在出现异常的行后面,看继续后是否还可以跟到4. 在开发环境下,有没有什么操作可以让我忽略所有的try catch块?类似VB 6.0开发环境中的选项“发生错误时中断”
忽略try catch你可以用#if debug #end if来决定什么时候try catch
第一种情况用于文件操作时,用户没将盘放入驱动器。难道只能用Goto吗?实在不想用Goto另外,对于第2点
2. 有的数据库操作,出错后只提示“系统错误”,非得用try catch,然后将ex.Message显示出来才能看到具体的错误提示,有没有其它方法能够直接看到出错信息,而不用我每次都得加上try catch块才能看到。没有其它方法显示出错提示吗?为什么很多错误都能提示出来,但大部分的数据库操作提示不出来?
第一个问题lys1978900的思路不错,在方法外部根据方法的返回值判断是否重新调用。
我接分
try
{
MessageBox.Show("1");#endif
MessageBox.Show("2");
#if ttt
MessageBox.Show("3");
}
catch(Exception ex)
{
}
#endif感觉这样别扭啊