每个人都在C#中使用Try-Catch。我知道。
例如;
static void Main()
{
string s = null; // For demonstration purposes.
try
{
ProcessString(s);
}
catch (Exception e)
{
Console.WriteLine("{0} Exception caught.", e);
}
}
}
一切都好。
但是如何为特定错误指定名称?
例如;
try
{
enter username;
enter E-Mail;
}
catch
{
}
ErrorMessage
- > (“用户名已存在”)ErrorMessage
- > (“电子邮件正在使用”)我如何在C#
?
最诚挚的问候,
Soner
答案 0 :(得分:6)
if(UserNameAlreadyExists(username))
{
throw new Exception("Username already exists");
}
if(EmailAlreadyExists(email))
{
throw new Exception("Email already exists");
}
这将回答你的问题。
但异常处理不能用于执行那些检查。例外代价很高,并且适用于无法从错误中恢复的特殊情况。
答案 1 :(得分:3)
当您抛出异常时,您可以为它们分配消息:
throw new Exception("The username already exists");
但是我不认为你应该在这里抛出异常,因为你的应用程序将期望输入导致这些错误;他们不是特殊的条件。也许你应该使用验证器或其他类型的处理程序。
答案 2 :(得分:2)
try
{
if (username exists)
{
throw new Exception("The Username Already Exist");
}
if (e-mail exists)
{
throw new Exception("The E-Mail Already Exist");
}
}
catch(Exception ex)
{
Console.WriteLine("The Error is{0}", ex.Message);
}
答案 3 :(得分:2)
我认为所有这些答案都指向了这个问题,但是如果你在将来的某个时候想要对每个例外进行不同的处理,你可以按照以下方式进行:
接下来的示例假设您实现了两个不同的例外
try
{
if user name is exit
{
throw new UserNameExistsException("The Username Already Exist");
}
if e-mail is already exit
{
throw new EmailExistsException("The E-Mail Already Exist");
}
}
catch(UserNameExistsException ex)
{
//Username specific handling
}
catch(EmailExistsException ex)
{
//EMail specific handling
}
catch(Exception ex)
{
//All other exceptions come here!
Console.WriteLine("The Error is{0}", ex.Message);
}
答案 4 :(得分:1)
您可以这样做:
if (UsernameAlreadyExcists(username))
{
throw new Exception("The Username Already Exist");
}
答案 5 :(得分:1)
在C#中,可以创建我们自己的异常类。但是Exception必须是C#中所有异常的最终基类。因此,用户定义的异常类必须从Exception类或其标准派生类之一继承。
using System;
class MyException : Exception
{
public MyException(string str)
{
Console.WriteLine("User defined exception");
}
}
class MyClass
{
public static void Main()
{
try
{
throw new MyException("user exception");
}
catch(Exception e)
{
Console.WriteLine("Exception caught here" + e.ToString());
}
}
}
你可以抛出这些异常并在你的应用程序中的任何地方抓住它们,虽然我不会在这种情况下使用例外。