Throw_3.java: New Test.
* testsuite/libjava.lang/Throw_3.java: New Test. * testsuite/libjava.lang/Throw_3.out: Its expected output. From-SVN: r119023
This commit is contained in:
parent
d5b1188567
commit
e9057fe4ee
3 changed files with 47 additions and 0 deletions
41
libjava/testsuite/libjava.lang/Throw_3.java
Normal file
41
libjava/testsuite/libjava.lang/Throw_3.java
Normal file
|
@ -0,0 +1,41 @@
|
|||
// Check that a NPE likely thrown from the first instruction of a
|
||||
// method (foo) is properly caught.
|
||||
public class Throw_3
|
||||
{
|
||||
public static void main(String[] args)
|
||||
{
|
||||
Throw_3 al = new Throw_3();
|
||||
try
|
||||
{
|
||||
al.foo(null);
|
||||
}
|
||||
catch (NullPointerException npe)
|
||||
{
|
||||
StackTraceElement ste[] = npe.getStackTrace();
|
||||
StackTraceElement top = ste[0];
|
||||
if ("foo".equals(top.getMethodName()))
|
||||
{
|
||||
System.out.println("ok");
|
||||
return;
|
||||
}
|
||||
}
|
||||
System.out.println("bad");
|
||||
}
|
||||
|
||||
public int bar(int[] a)
|
||||
{
|
||||
System.out.println("Bar");
|
||||
return 5;
|
||||
}
|
||||
|
||||
/**
|
||||
* If the second parameter ('this' being the first) is passed in a
|
||||
* register, then the first machine instruction in foo is likely to
|
||||
* fault when null is passed.
|
||||
*/
|
||||
public int foo(int[] a)
|
||||
{
|
||||
int l = a.length;
|
||||
return l + l;
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue