gpt4 book ai didi

C# 异常和代码中断

转载 作者:可可西里 更新时间:2023-11-01 10:53:25 30 4
gpt4 key购买 nike

我有一个名为 TryMe 的方法,它有 try catch block 并捕获他的异常。
我从另一个类调用他,但是当发生异常时它不会停止代码执行。
示例:

public void TryMe()
{
try
{
SomeMethod();
}
catch(Exception exception){
MessageBox.Show(exception.Message);
}
}


//Method calling
Actions CAactions = new Actions();
CActions.TryMe();
///////////////////////////////////
//If exception is handled it should stop to here.

this.Hide();
FormActions FormActions = new FormActions();

方法定义在类文件中。方法调用在windows窗体中。
问题是它只显示消息框,代码继续执行。
我想在异常捕获后停止代码而不是隐藏表单。如果一切正常,它应该隐藏它。
也许我的观念是错误的?

最佳答案

最简单的解决方法是根据成功与否更改函数以返回 true/false(即仅在 TryMe 方法未出错时隐藏表单):

 public bool TryMe()
{
try
{
SomeMethod();
return true;
}
catch (Exception exception)
{
// log exception
return false;
}
}

并这样调用它:

 if (CActions.TryMe())
{
this.Hide();
}

另一种选择是在显示消息后重新抛出异常,并让调用代码在 try catch 中处理它:

public void TryMe()
{
try
{
SomeMethod();
}
catch (Exception exception)
{
// log exception?
throw;
}
}

调用代码:

   try 
{
CActions.TryMe();
this.Hide();
}
catch (Exception ex)
{
// error handling
}

关于C# 异常和代码中断,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16536991/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com