私はprintln()
メソッドのコンセプトで少し疑問に思っています。PrintStream.println()の動作 - Java/Python/Any言語
私は、次のコードを試してみました:予想される出力であり、実際に、私は時々これを取得
Object one = 1;
System.out.println(one);
one = "String";
System.out.println(one);
one = null;
System.out.println(one.toString()); // To explicitly throw an Exception
を:しかし、複数回実行している
1
String
Exception in thread "main" java.lang.NullPointerException
at MainClass.main(MainClass.java:18) <5 internal calls>
、我々としても、次の出力を見ることができます:
1
Exception in thread "main" java.lang.NullPointerException
at MainClass.main(MainClass.java:18) <5 internal calls>
String
または
Exception in thread "main" java.lang.NullPointerException
at MainClass.main(MainClass.java:18) <5 internal calls>
1
String
次に、私はPythonで同様の操作を行うことを考えました。以下はスニペットです:
var = 'Hello';
print var;
var = 6;
print var;
del var;
print var;
はい、同様の動作です。トレースバックメッセージの出力プリファレンスを特定できません。場合によっては、上部に、時には中央に、時には下部に印刷されます。
バッファ出力に関するものでなければならないと思います。確かに、それは可能性があります。
誰でもこのコンセプトを手に入れることができますか?
しかし、それは 'out'ストリームから' err'ストリームにジャンプしますか?明示的に 'System.out.println'を使用しました。 – cprakashagr
'try catch'ブロックを適用すると、' out'ストリームから 'err'ストリームに移動できなくなりますか? – cprakashagr
@cprakashagr 'out'と' err'は2つの別々のストリームであり、一方は他方にジャンプしません。これらは両方ともコンソールに表示されます。私はあなたが 'System.out.println'を使っているのを見ることができます。私は最初の例で' System.err.println'を使っています。 –