stacktrace.java: New file.
2006-05-24 Andreas Tobler <a.tobler@schweiz.ch> * testsuite/libjava.lang/stacktrace.java: New file. * testsuite/libjava.lang/stacktrace.out: Likewise. From-SVN: r114052
This commit is contained in:
parent
ee4e9e6531
commit
860d14158e
3 changed files with 79 additions and 1 deletions
libjava/testsuite/libjava.lang
67
libjava/testsuite/libjava.lang/stacktrace.java
Normal file
67
libjava/testsuite/libjava.lang/stacktrace.java
Normal file
|
@ -0,0 +1,67 @@
|
|||
/* This test should test the stacktrace functionality.
|
||||
We only print ClassName and MethName since the other information
|
||||
like FileName and LineNumber are not consistent while building
|
||||
native or interpreted and we want to test the output inside the dejagnu
|
||||
test environment.
|
||||
Also, we have to make the methods public since they might be optimized away
|
||||
with inline's and then the -O3/-O2 execution might fail.
|
||||
*/
|
||||
public class stacktrace {
|
||||
public static void main(String args[]) {
|
||||
try {
|
||||
new stacktrace().a();
|
||||
} catch (TopException e) {
|
||||
}
|
||||
}
|
||||
|
||||
public void a() throws TopException {
|
||||
try {
|
||||
b();
|
||||
} catch (MiddleException e) {
|
||||
throw new TopException(e);
|
||||
}
|
||||
}
|
||||
|
||||
public void b() throws MiddleException {
|
||||
c();
|
||||
}
|
||||
|
||||
public void c() throws MiddleException {
|
||||
try {
|
||||
d();
|
||||
} catch (BottomException e) {
|
||||
throw new MiddleException(e);
|
||||
}
|
||||
}
|
||||
|
||||
public void d() throws BottomException {
|
||||
e();
|
||||
}
|
||||
|
||||
public void e() throws BottomException {
|
||||
throw new BottomException();
|
||||
}
|
||||
}
|
||||
|
||||
class TopException extends Exception {
|
||||
TopException(Throwable cause) {
|
||||
super(cause);
|
||||
}
|
||||
}
|
||||
|
||||
class MiddleException extends Exception {
|
||||
MiddleException(Throwable cause) {
|
||||
super(cause);
|
||||
}
|
||||
}
|
||||
|
||||
class BottomException extends Exception {
|
||||
BottomException() {
|
||||
StackTraceElement stack[] = this.getStackTrace();
|
||||
for (int i = 0; i < stack.length; i++) {
|
||||
String className = stack[i].getClassName();
|
||||
String methodName = stack[i].getMethodName();
|
||||
System.out.println(className + "." + methodName);
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue