从 C# 中的函数退出

发布于 2024-11-04 17:17:45 字数 45 浏览 1 评论 0原文

一个基本问题。我需要退出函数而不引发任何异常。我如何在 C# 中做到这一点?

A basic question. I need to exit a function without throwing any exceptions. How do I do that in C#?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(6

很简单:

void Function()
{
    ...

    if(needToLeave)
        return;

    ...
}

It's as simple as:

void Function()
{
    ...

    if(needToLeave)
        return;

    ...
}
暖风昔人 2024-11-11 17:17:45

我不确定我是否正确理解了你的意思。也许使用return;

I'm not sure I understand you correctly. Maybe using return;?

浮云落日 2024-11-11 17:17:45

而不是使用“返回;”我总是提出正确的逻辑。

换句话说,您不需要从某些方法中退出执行:只需使用条件语句,这样如果某些布尔值不为 true,则意味着某些代码不得执行。

但我认为这是我的观点,其他人更喜欢将控制权返回给调用者。

此外,您想知道基于异常的流控制是一种反模式。

Instead of using "return;" I've always suggested a right logic.

In other words, you don't need to leave execution from some method: just use a conditional statement so if some boolean isn't true, that would mean some code mustn't be executed.

But I assume this is my opinion, and others prefer returning the control to the caller.

Additionally, you'd like to know exception-based flow control is an anti-pattern.

零度℉ 2024-11-11 17:17:45

使用 return 或 break 关键字……但请确保这些语句后面没有任何内容,因为您可能有无法访问的代码。此外,代码中存在多个退出也会导致将来难以维护

Use the return or break keywords ...... But make sure nothing is after these statements as you may have unreachable code. Also having multiple exits in your code can make it difficult to maintain in the future

两相知 2024-11-11 17:17:45

您可以将代码放在 try catch 块中,并在 finally 块中执行您想做的任何操作,而不必担心异常。

 try
        {
         //try something   
        }
        catch(Exception ex)
        {
            //catch all exceptions and log on need basis
            //but do not throw the exception from here
        }
        finally
        {
            return "Test";
            //do what ever you want to do 
        }

you can put you code in a try catch block and do whatever you want to do in the finally block without worrying about the exception.

 try
        {
         //try something   
        }
        catch(Exception ex)
        {
            //catch all exceptions and log on need basis
            //but do not throw the exception from here
        }
        finally
        {
            return "Test";
            //do what ever you want to do 
        }
半边脸i 2024-11-11 17:17:45

可能是将 catch 块保持为空。请解释你的问题

May be to Keep the catch block empty. Please explain your question

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文