gpt4 book ai didi

java - 在编译时有效获取java源码中的行号

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:02:00 25 4
gpt4 key购买 nike

我有一个异常类,我想在其中传递当前行号

     line 70:
line 71: throw new
LightException(FailureType.NOT_FOUND,this.getClass().getName(),linenum);

有没有办法在不硬编码的情况下将 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;
}
}

我不需要记录整个堆栈跟踪,也不需要为所有异常填充堆栈跟踪。我想添加引发异常的行号。任何可以在编译时解析为常量的代码?

如果没有,那么我可以编写一个简单的 utitly 来预处理我的代码,它可以读取行并用行号替换一个特殊的常量 _my_line_num 但应该存在一些东西。

我觉得像 gradle 这样的构建工具可以做到这一点。

最佳答案

我不确定是不是good solution或不,但你可以把这个:

int linenumber = Thread.currentThread().getStackTrace()[2].getLineNumber();

作为异常承包商中的参数并根据需要显示。

关于java - 在编译时有效获取java源码中的行号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31011354/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com