我有一个异常类,我想在其中传递当前行号
line 70:
line 71: throw new
LightException(FailureType.NOT_FOUND,this.getClass().getName(),linenum);
有没有办法在没有硬编码的情况下将亚麻布作为72? eclipse是否提供了在编译时被替换为硬编码行号的任何东西。所以我不必把丑陋的硬代码行号放在
class LightException(FailureType type,String className,int lineNum) extends RuntimeException
{
LightException(FailureType type,String className,int lineNum){..
//
}
@Override
@Override public Throwable fillInStackTrace() {
return this;
}
}
我不需要记录整个堆栈跟踪,并且不必为所有异常填充堆栈跟踪。我想添加引发异常的行号。 可以在编译时解析为常量的任何代码吗?
如果没有那么我可以写一个简单的预处理我的代码,它可以读取行并用行号替换一个特殊的常量_my_line_num但是应该存在一些东西。
我觉得像gradle这样的构建工具可以做到这一点。
答案 0 :(得分:1)
我不确定它是否good solution,但你可以放置它:
int linenumber = Thread.currentThread().getStackTrace()[2].getLineNumber();
作为您的例外承包商的参数,并根据需要显示。