Recentemente ho chiesto una domanda su SO, dove stavo provando per capire come catturare un'eccezione in un pezzo di codice che gira indefinitamente. Inizialmente mi aspettavo che
try:
the_code_which_runs_indefinitely_and_which_raises_an_exception()
except:
print('the exception in the code which runs indefinitely was caught')
funzionerebbe (l'attuale codice Python è nella domanda collegata - Sto chiedendo su SE perché voglio capire la ragione della scelta nell'implementazione piuttosto che una soluzione (anche se ce ne sarebbe una per il mio problema specifico sarebbe grandioso)).
Non è così. Come accennato nella domanda, la mia supposizione selvaggia è che la costruzione try
/ except
non sia ancora in posizione (e non sarà mai) mentre the_code_which_runs_indefinitely_and_which_raises_an_exception()
è in esecuzione.
Quali sono le motivazioni alla base della decisione di avere delle eccezioni che non possono essere intercettate (quando il meccanismo di cattura è ben funzionante, e nel caso di Python addirittura incoraggiato)?