2
votes

Python - comment faire exécuter un programme pour toujours, quelles que soient les exceptions?

J'ai donc quelque chose de la forme:

def func():
  while True:
    do_stuff()

try:
  func()
except:
  func()

Je m'attendais à ce que si quelque chose arrivait à ma boucle func, elle recommencerait, mais en réalité, des erreurs la provoquent . Comment puis-je le redémarrer en cas de problème?


4 commentaires

Je pense que vous devriez vous fier au script shell pour cette question.


Donc, votre programme fonctionnera toujours sur les exceptions de mémoire insuffisante?


@RedX pouvons-nous le faire comme: utiliser toute l'exception sauf l'exception mémoire insuffisante ? en python?


@Nihal Bien sûr, vous pouvez toujours créer une liste blanche ou une liste noire, mais mon point est que la simple exigence ne montre aucune réelle réflexion et devrait être reconsidérée.


3 Réponses :


4
votes

Vous pouvez essayer de placer le try-except dans une boucle while et utiliser pass dans le bloc except.

Ex:

def func():
  while True:
    do_stuff()

while True:
    try:
        func()
    except:
        pass


0 commentaires

1
votes

Qu'essayez-vous d'accomplir? Le maintien d'un programme en cours d'exécution n'est généralement pas la responsabilité du programme lui-même. Si vous utilisez un système d'exploitation de type UNIX, vous pouvez utiliser Supervisord pour exécutez automatiquement les processus et laissez-les redémarrer s'ils échouent. Si vous êtes sous Windows, cette réponse peut vous aider!


0 commentaires

0
votes

Essayez de mettre le contenu de la boucle dans try sauf les instructions

def func():
    while True:
        try:
            do_stuff()
        except:
            continue
func()


0 commentaires