Hiperłącza dla śledzenia stosu wyjątku są oparte na nazwie pliku i numerze linii podanym na końcu wiersza. Na przykład.
Stack trace:
org.eclipse.jface.internal.databinding.provisional.BindingException: string property does not have a read method.
at org.eclipse.jface.internal.databinding.internal.beans.JavaBeanObservableValue.doGetValue(JavaBeanObservableValue.java:102)
at org.eclipse.jface.internal.databinding.internal.beans.JavaBeanObservableValue.setValue(JavaBeanObservableValue.java:83)
Dla pierwszego śladu stosu, to na linii 102 w pliku JavaBeanObservableValue.java
. Plik jest wyszukiwany w bieżącej ścieżce klasy, więc jeśli masz wiele klas o tej samej nazwie, zawsze znajduje się pierwszy ...
Innymi słowy, jeśli chcesz dodać rozszerzone hiperłącze na podstawie swojego przykładu, trzeba wydłużyć nieco widok konsoli ...
... co można zrobić z punktem rozszerzenia org.eclipse.ui.console.consolePatternMatchListeners
. Łatwo jest używać tego punktu rozszerzenia i patrząc na przykład z JDT, powinieneś być w stanie sprawić, by twój przykład działał bez zbytniej pracy ...
Aby uzyskać numer linii bieżącej linii, można rzucić i wyjątek i pobrać numer linii z tego. Prawdopodobnie nie jest to zadziwiająco wydajne, ale jeśli robisz coś takiego, wtedy wydajność nie jest prawdopodobnie tym, czego szukasz. –
'Class.getName' wypisze kanoniczną nazwę klasy - z pakietami, więc to zadziała tylko, jeśli nie użyjesz pakietów (co jest wskaźnikiem złego kodu),' getSimpleName' powinno działać we wszystkich przypadkach – specializt