Разделение различных исключений

Мне нужно "напечатать текст исключения и сообщение о наличии ffmpeg на ПК", сделал так:

try:
    cmd = "ffmpeg -nostdin -loglevel quiet -i input_file_name -ar 16000.0 -ac 1 -f s16le -"
    process = subprocess.Popen(cmd.split(), stdout=subprocess.PIPE)
except subprocess.SubprocessError as e:
    raise("Missing ffmpeg")

(говорят не правильно), может у кого то есть идеи?


Ответы (1 шт):

Автор решения: Vestalt

Если вам надо напечатать текст исключения, используйте print(exception):

try:
    cmd = "ffmpeg -nostdin -loglevel quiet -i input_file_name -ar 16000.0 -ac 1 -f s16le -"
    process = subprocess.Popen(cmd.split(), stdout=subprocess.PIPE)
except subprocess.SubprocessError as e:
    print(e, "\nMessage: missing ffmpeg")

В print объект исключения приведётся к строке сообщения.

raise используется, чтобы вызвать исключение. Пример:

def func():
    raise Exception("My message")


try:
    func()
except Exception as ex:
    print(ex)

My message

→ Ссылка