异常没有被定义

本文关键字:定义 异常 | 更新日期: 2023-09-27 17:50:02

我正在尝试创建一个新的自定义异常。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace project1.Exception
{
  public class ItemNotFoundException: Exception
  {
  }
}

当构建项目时,它给出一个错误。

错误51 'Solution1.project1。Exception'是一个'命名空间',但像'type'一样使用D:'wORKsHOP'Arte。Apax2 08.05.2015'project1'Attributes'Logger.cs 71 80 Solution1.project1

知道为什么会这样吗?我是否需要添加类似System.exception的内容?

异常没有被定义

namespace project1.Exception重命名为namespace project1.MyCustomException或其他类似的。编译器在

中看到Exception
public class ItemNotFoundException: Exception

引用您的名称空间Exception,而不是类。将名称空间重命名为Exception以外的任何名称都可以解决这个问题。

您使用的名称空间名为

namespace project1.Exception

在这个命名空间中,你正在使用Exception的继承。问题是编译器认为你的

public class ItemNotFoundException: Exception 

引用的是名称空间,而不是Exception标准类。要解决这个问题,只需写入

public class ItemNotFoundException: System.Exception

它应该可以正常工作

通过调用名称空间Exception创建了名称歧义。现在,编译器确实认为名称空间命名比在System名称空间中命名为Exception的对象更重要。因此,它警告您不要从名称空间而不是对象继承。如果你想继承System。异常,您需要完全限定继承对象的名称,包括其名称空间,以解决歧义。

namespace project1.Exception
{
  public class ItemNotFoundException: System.Exception //Fullqualified reference to exception
  {
  }
}

当然,您也可以简单地将名称空间重命名为不包含Exception,就像前面提到的那样,这样您就可以不使用完全限定的名称了。