Найти - Пользователи
Полная версия: Игнорирование ошибок
Начало » Mobile Python » Игнорирование ошибок
1 2
teil
Добрый день
Пишу программу на питоне для телефона Nokia E50
Смысл в том что она делает снимок камерой и заливает его на фтп раз в какой то интервал.
Все работает но не долго, бывает через 4 снимка а бывает через 50 выскакивает ошибка что либо не может снять снимок или не может подключиться к фтп. Как побороть не могу разобраться.
Хотел сделать чтоб один скрипт вызывал другой и таким образом обеспечить перезапуск при сбое, но наткнулся что в той версии что стоит в симбиане в модуле os не работает команда spawnl
может кто подскажет как сделать так чтоб программа продолжала работать после ошибки в библиотеке?
igor.kaist
Оборачивать в try и except, очевидно же.
Запускать скрипт можно из e32.start_server, писал об этом здесь http://habrahabr.ru/blogs/PyS60/77452/
ReaL_HarDCorE
А тут нужно использовать исключения, тобиш:
def function():
try:
instruction
except:
pass
Поясню: в ветви try у нас выполняется ваша функция. если при выполнении этой ветви появляется ошибка, то дальше работает ветвь except:(исключение), а pass в этой ветви как раз и означает пропустить ошибку
teil
спасибо теперь допонял смысл
а то я думал наоборот

команда
try:
что делать если выполнилась
except:
что делать если не выполнилась

сегодня проверю
R.Ll.S.h57
Не совсем.
Вот так:
try:
Что надо делать.
except:
Что надо, если не выполнилось.
else:
# Ветка else не обязательно
Что надо, если выполнилось.
teil
R.Ll.S.h57
Не совсем.
Вот так:
try:
Что надо делать.
except:
Что надо, если не выполнилось.
else:
# Ветка else не обязательно
Что надо, если выполнилось.
Да я понял
это я написал то как я думал раньше что должно работать
igor.kaist
teil
а то я думал наоборот
вот поэтому сначала нужно читать учебники, а только потом копипастить код…
ReaL_HarDCorE
igor.kaist
teil
а то я думал наоборот
вот поэтому сначала нужно читать учебники, а только потом копипастить код…
вот вот. я перерыл infopython, start with python и ещё один какой то безымянный учебник
teil
Прошу сильно не ругать может за глупые вопросы
но блин все вроде сделал как надо а ошибки продолжают выскакивать и останавливать работу программы:(

Вот листинг кода:
import time
import sys
try:
sys.modules = __import__('btsocket')
except ImportError:
pass
import socket
import camera
from ftplib import FTP
import sysinfo
import httplib
tstart=0
while 1<2:
print time.strftime(“%d-%m-%Y %H:%M:%S”, time.localtime()), sysinfo.free_ram()
curh = int(time.strftime(“%H”, time.localtime()))
if (curh > 6) & (curh < 22):
t=int(time.time())
if t-tstart>300:
tstart=t
print time.strftime(“%d-%m-%Y %H:%M:%S”, time.localtime()), “ cam”
try:
i=camera.take_photo()
i.save(u'C:\\1234.jpg')
print time.strftime(“%d-%m-%Y %H:%M:%S”, time.localtime()), “ connect”
apid = 1
apo=socket.access_point(apid)
socket.set_default_access_point(apo)
print time.strftime(“%d-%m-%Y %H:%M:%S”, time.localtime()), “ ftp connect”
ftp=FTP ('46.162.2.12','login','pass',15)
f=open(“C:\\1234.jpg”)
ftp.storbinary(“STOR cam1.jpg\n”,f)
f.close()
ftp.close()
print time.strftime(“%d-%m-%Y %H:%M:%S”, time.localtime()), “ file close”
conn.close()
except:
pass
else:
print time.strftime(“%d-%m-%Y %H:%M:%S”, time.localtime()), “ wait”
i=camera.take_photo()
i.save(u'C:\\1234.jpg')
print time.strftime(“%d-%m-%Y %H:%M:%S”, time.localtime())
time.sleep(3)
Soteric
У вас эта строка
i=camera.take_photo()
в else секции выбросила исключение. Его тоже необходимо ловить.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB