【问题标题】:In C# I have implemented a custom exception, how do I now implement it?在 C# 中我已经实现了一个自定义异常,我现在如何实现它?
【发布时间】:2018-11-15 18:16:14
【问题描述】:

我正在为一项作业制作井字游戏,而且我是 C# 新手。我有一个名为BadMoveException 的错误动作的自定义例外,如果用户输入的不是0-8 的话。有现有的分配代码,我想知道我是否应该取消创建自己的代码来使用这个异常,或者在这里实现它是否足够容易?代码如下:

string input;
int position;
do
{
    input = Console.ReadLine();
} 
while (!int.TryParse(input, out position));

我需要捕获BadMoveException,以及任何其他带有未知错误消息的消息。提前谢谢!

【问题讨论】:

    标签: c# try-catch tic-tac-toe custom-exceptions


    【解决方案1】:

    只要你的BadMoveException继承自Exception,那么你就可以像使用其他Exception一样使用它,像这样:

    try {
        //do stuff
        if (badMove) {
            throw new BadMoveException();
        }
    } catch (BadMoveException) {
        //user made a bad move!!
    } catch {
        //something else went wrong
    }
    

    这里有更多关于异常处理的信息:https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/exceptions/

    【讨论】:

      【解决方案2】:

      这是我所拥有的:

      1- 首先,您的异常需要像这样从 Exception 继承:

      public class BadMoveException : Exception { // Your code here }

      2- 当你遇到错误时,你可以这样使用它:

      throw new BadMoveException(// Enter parameter if you have any in you class);

      然后你抓住了它:

      try
      {
          if(Position < 0 || Position > 8) 
          { 
               throw new BadMoveException(// Enter parameter here if you have any);
          }
          else
          {
               // Your code here
          }
      }
      catch(BadMoveException bmex) { // Show message here }
      catch(Exception ex) { // Show other exception }
      

      希望对你有帮助!

      文档链接:http://www.tutorialsteacher.com/csharp/custom-exception-csharp https://stackify.com/csharp-exception-handling-best-practices/

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-03-25
        • 2015-12-24
        • 2018-10-04
        • 1970-01-01
        • 1970-01-01
        • 2022-11-21
        • 1970-01-01
        相关资源
        最近更新 更多