I have a exception class where in which i want to pass the current line number
line 70:
line 71: throw new
LightException(FailureType.NOT_FOUND,this.getClass().getName(),linenum);
Is there a way to get linenum as 72 here without hardcoding it? Does eclipse offer anything that would get replaced into hardcoded line numbers at compile time.So that i don't have to put ugly hard-code line numbers
class LightException(FailureType type,String className,int lineNum) extends RuntimeException
{
LightException(FailureType type,String className,int lineNum){..
//
}
@Override
@Override public Throwable fillInStackTrace() {
return this;
}
}
I do not need to log the entire stack trace and unnecessarily filling the stack trace for all exceptions.I want to add the line number from where the exception was thrown. Any code which can be resolved at compile time into constants?
If not then I can write a simple utitly to pre-process my code which can read lines and replace a special constant _my_line_num by the line number but something should exist.
I feel some build tool like gradle can do this.
-
AFAIK I don't think Eclipse offers anything like this.Moonhead– Moonhead2015年06月23日 19:09:11 +00:00Commented Jun 23, 2015 at 19:09
-
1Refer thisMadhan– Madhan2015年06月23日 19:12:12 +00:00Commented Jun 23, 2015 at 19:12
-
1I didn't want that.If i have to fill the stack trace and get the line number of it.There is no point in avoiding it.I would rather have a simple utility do it for merakesh99– rakesh992015年06月23日 19:14:18 +00:00Commented Jun 23, 2015 at 19:14
-
Why don't you want to use the stack trace? Is it just a performance question? If so make sure it's a real issue before you make something complicatedRichard Tingle– Richard Tingle2015年06月23日 19:52:53 +00:00Commented Jun 23, 2015 at 19:52
1 Answer 1
I am not sure if it is good solution or not but you can place this:
int linenumber = Thread.currentThread().getStackTrace()[2].getLineNumber();
as a parameter in your exception's contractor and display it as you need.