Форум сайта python.su
0
Привет.
У меня есть такой скрипт:
#!/usr/bin/env python3 import lxc all=lxc.list_containers() for i in all: try: container = lxc.Container(i) print(container.name +"\t"+ container.state +\ "\t"+ container.get_ips()[0]) except IndexError: print(container.name+"\tNO IP")
lxc_container: Connection refused - failed to enter namespace
Офлайн
33
the_questionerОпределить в каком месте скрипта оно возникает и поставить соответствующий exception в try/except
Как его перехватить и обработать внутри моего python скрипта?
Офлайн
49
the_questioner
Как его перехватить и обработать внутри моего python скрипта?
try: какой то код... except (RuntimeError, EnvironmentError): обработка исключения...
Офлайн
0
import lxc all=lxc.list_containers() for i in all: try: try: container = lxc.Container(i) print(container.name +"\t"+ container.state +\ "\t"+ container.get_ips()[0]) except IndexError: print("Виртуальная машина не имеет ip адреса") except (RuntimeError, EnvironmentError): print("========")
Офлайн
0
Исключение вызывает этот код
print(container.name +"\t"+ container.state +\ "\t"+ container.get_ips()[0])
container.get_ips()[0]
Отредактировано the_questioner (Авг. 28, 2014 07:37:59)
Офлайн
33
the_questioner
А конкретно, этот участок, если контейнер остановлен, а у него пытаются запросить ip
Офлайн
0
BudulianinПогоди, а у меня же не вываливается никакого исключения!
Ну дак и оберни этот код в try/except с соответствующим исключением.
Офлайн
49
try: try:
try: что-то except IndexError: что-то except AttributeError: что-то ...
the_questioner
Погоди, а у меня же не вываливается никакого исключения!
У меня есть выхлоп в stderr просто.
import sys sys.stderr.write('Error') # Вывод текста в stderr.
import exceptions class MyException(exceptions.Exception): def __init__(self, error): Exception.__init__(self, error) self.error = error self.message = 'My exception'
class ContainerAlreadyExists(Exception): pass
Отредактировано Alen (Авг. 28, 2014 19:15:55)
Офлайн
0
Спасибо. Но это пока довольно сложно для меня.
Пока обхожу так:
Проверяю - если lxc контейнер выключен, значит не спрашиваю у него ip адрес.
Офлайн