如何在Java中抛出自定义块异常

时间:2015-07-20 16:32:46

标签: java selenium exception-handling annotations

我想知道如何在java.i中编写自定义块异常将在以下示例中解释它。

@login

//Below code snippet do log in functionality.
mycode goes here

String name="abc";
if name.equals("ABC")
{
  enter to system ...
}

控制台输出

You have error on log in 

@Register

//Below code snippet do register functionality.

mycode goes here

让我们在@login注释中说我的code.java有一个错误应该像一个好的可读方式抛出它。异常应该像常规异常和它生成的地方.i意味着代码块在这种情况下它是登录。如果注册,应该说你的寄存器代码块有错误。

此外,我不会在方法之上声明注释。在我的情况下,没有这样的方法,并且所有内容都处理注释。 作为一个例子

学生班级

class student{
@login
login related codes goes here

@View Result
view result related codes goes here

@logout
logout code goes here

}

作为一个例子,您可以将上面的类视为selenium脚本。在脚本中我们不使用任何方法。我想实现后端类(注释),在相关代码块中发生并发生有意义的错误。(登录,查看结果,......)

当用户编写新脚本时,他可以重用我的注释。

实际上这是一个我想要实现的想法。因为如果我喜欢它,那对我的应用程序用户来说很容易。所以我想知道它可以做到,如果可以,我该怎么办呢。如果你知道另一种方式请让我知道你的想法。谢谢。

1 个答案:

答案 0 :(得分:1)

我不相信我完全理解这个问题,但如果您正在寻找创建自定义异常,您可以执行以下操作:

if name.equals("ABC") {
    // do something
} else {
    throw new CustomException("Name did not equal 'ABC'");
}

自定义异常定义为:

public class CustomException extends Exception {

    public CustomException(String msg) {
        super(msg);
    }
}

然后,无论您需要处理异常,它都会显示为:

try {
    // do something that might throw a CustomException
} catch (CustomException ce) {
    ce.printStackTrace();
    // or do something more useful to handle the exception
}

如果你走这条路,我会称之为CustomException以外的东西,称之为与异常相关的问题相关的东西,例如NameNotEqualException