[PYTHON] Wo befindet sich der ausgelöste Speicherort im Exception-Stack-Trace? Wo wurde es erzeugt?

Vereinfachtes Diagramm

Kommt darauf an, wohin es geworfen wurde

Statisch typisierte Sprache Dynamisch typisierte Sprache
  • C#
  • Ruby
  • Python

Hängt davon ab, wo es generiert wurde

Statisch typisierte Sprache Dynamisch typisierte Sprache
  • Java
  • Scala
  • D
  • PHP

Besondere

Beide Informationen bleiben erhalten

--JavaScript (Nur ** generierter Speicherort ** bleibt als "e.stack" erhalten)

Es gibt keine Ausnahmen im Sprachstandard

Die Stapelverfolgung kann nicht nach Sprachstandard durchgeführt werden

Überprüfung

Wir suchen jederzeit nach mehr im Kommentarbereich!

Ruby


e = Exception.new
raise e

# test.rb:2:in `<main>': Exception (Exception)

Python


e = Exception
raise e

# Traceback (most recent call last):
#  File "test.py", line 2, in <module>
#    raise e
# Exception

PHP


<?php
$e = new Exception;
throw $e;

/*
PHP Fatal error:  Uncaught Exception in test.php:2
Stack trace:
#0 {main}
  thrown in test.php on line 2
*/

↑ ** eingeworfen ** erscheint, aber seien Sie vorsichtig, da es nicht der Ort ist, an dem Sie es geworfen haben

Java


import java.lang.Exception;
class Main
{
	public static void main(String[] args) throws Exception
	{
		Exception e = new Exception();
		throw e;
	}
}

/*
Exception in thread "main" java.lang.Exception
	at Main.main(Main.java:6)
*/

Scala


object Main {
	val e = new Exception
	throw e
}

/*
Exception in thread "main" java.lang.Exception
	at Main$.delayedEndpoint$Main$1(Main.scala:2)
	at Main$delayedInit$body.apply(Main.scala:1)
        ...
*/

JavaScript


e = new Error;
throw e;

/*
test.js:2
throw e;
^

Error
    at Object.<anonymous> (test.js:1:67)
    at Module._compile (module.js:413:34)
*/

Recommended Posts

Wo befindet sich der ausgelöste Speicherort im Exception-Stack-Trace? Wo wurde es erzeugt?
Als ich die von Django generierte Abfrage überprüfte, wurde sie in großer Anzahl ausgegeben
"Ausnahmestapelüberlauf!" In PyMu PDF
Stapelverfolgung mit Python-Ausnahme anzeigen
Ich habe den Stack in Python geschrieben
Bewegen Sie die Schildkröte an die Stelle, an der Sie mit der Maus mit der Schildkröte in Python klicken