summaryrefslogtreecommitdiff
path: root/libjava/testsuite/libjava.lang/Throw_3.java
blob: 5d9a2dc7ad44b44cf1ac3a81f708a25fcf2567c8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
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;
  }
}