intercept SIGSEGV and throw NullPointerExceptions

This commit is contained in:
Joel Dice
2007-12-31 15:40:56 -07:00
parent 069a760918
commit f151d85f4e
6 changed files with 724 additions and 601 deletions

92
test/NullPointer.java Normal file
View File

@ -0,0 +1,92 @@
public class NullPointer {
private int x;
private Object y;
public static void main(String[] args) {
// invokeinterface
try {
((Runnable) null).run();
} catch (NullPointerException e) {
e.printStackTrace();
}
// invokevirtual
try {
((Object) null).toString();
} catch (NullPointerException e) {
e.printStackTrace();
}
// arraylength
try {
int a = ((byte[]) null).length;
} catch (NullPointerException e) {
e.printStackTrace();
}
// iaload
try {
int a = ((byte[]) null)[42];
} catch (NullPointerException e) {
e.printStackTrace();
}
// aaload
try {
Object a = ((Object[]) null)[42];
} catch (NullPointerException e) {
e.printStackTrace();
}
// getfield (int)
try {
int a = ((NullPointer) null).x;
} catch (NullPointerException e) {
e.printStackTrace();
}
// getfield (Object)
try {
Object a = ((NullPointer) null).y;
} catch (NullPointerException e) {
e.printStackTrace();
}
// iastore
try {
((byte[]) null)[42] = 42;
} catch (NullPointerException e) {
e.printStackTrace();
}
// aastore
try {
((Object[]) null)[42] = null;
} catch (NullPointerException e) {
e.printStackTrace();
}
// putfield (int)
try {
((NullPointer) null).x = 42;
} catch (NullPointerException e) {
e.printStackTrace();
}
// putfield (Object)
try {
((NullPointer) null).y = null;
} catch (NullPointerException e) {
e.printStackTrace();
}
// monitorenter
try {
synchronized ((Object) null) {
int a = 42;
}
} catch (NullPointerException e) {
e.printStackTrace();
}
}
}