Python try block does not catch os.system exceptions

If you want to have an exception thrown when the command doesn’t exist, you should use subprocess:

import subprocess
try:
    subprocess.run(['wrongcommand'], check = True)
except subprocess.CalledProcessError:
    print ('wrongcommand does not exist')

Come to think of it, you should probably use subprocess instead of os.system anyway …

Leave a Comment