Yes but what you need to do is first create your own custom exceptions. You need to derive your exception from the Exception base class. Heres an example:
[Serializable]
public class LoginFailedException: Exception
{
    public LoginFailedException() : base()
    { 
    }
    public LoginFailedException(string message) 
        : base(message) 
    { 
    }
    public LoginFailedException(string message, Exception innerException) 
        : base(message, innerException) 
    { 
    }
    protected LoginFailedException(SerializationInfo info, StreamingContext context) 
        : base(info, context) 
    { 
    }
}
Then in your code, you would need to raise this exception appropriately:
private void Login(string username, string password)
{
     if (username != DBUsername && password != DBPassword)
     {
          throw new LoginFailedException("Login details are incorrect");
     }
     // else login...
}
private void ButtonClick(object sender, EventArgs e)
{
     try
     {
           Login(txtUsername.Text, txtPassword.Text);
     }
     catch (LoginFailedException ex)
     {
           // handle exception.
     }
}