Я новичок в Java, и чтобы прояснить "System.out", я прочитал соответствующий исходный код Java, а затем нашел что-то, что я не могу понять.Сначала исходный код "System.out":
public final static PrintStream out = nullPrintStream();
, затем я перешел на nullPrintStream
private static PrintStream nullPrintStream() throws NullPointerException {
if (currentTimeMillis() > 0) {
return null;
}
throw new NullPointerException();
}
Мой вопрос: программа может выдать NullPointerException
вфункция nullPrintStream()
, и нам не нужно перехватывать исключение в public final static PrintStream out = nullPrintStream();
?Чтобы прояснить это, я написал несколько тестовых кодов в Eclipse следующим образом:
package MainPackage;
public class Src {
private static int throwException() throws Exception{
int m = 1;
if(m == 0) {
throw new Exception();
}
return 0;
}
public static final int aTestObject = throwException(); <==Here i got an error
public static void main(String args[]) {
}
}
Так же, как я думаю, я получил ошибку Необработанный тип исключения Exception , но почему System.out
в порядке, не делая с NullPointerException
?