怎么让 Python 在意外中止之后 播放警告音 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
JCZ2MkKb5S8ZX9pq
V2EX    Python

怎么让 Python 在意外中止之后 播放警告音

  •  
  •   JCZ2MkKb5S8ZX9pq 2018-10-27 17:26:47 +08:00 3211 次点击
    这是一个创建于 2598 天前的主题,其中的信息可能已经有所发展或是发生改变。

    经常爬着爬着就返回意外或者报错了,而且出现意外的点不止一处,难以预测,全都套 try 有点多。

    对 python 的错误处理不大了解,有什么精炼的应对方法嘛?至少出了错能出点声或者发个邮件啥的。

    有人指点一下嘛?

    14 条回复    2018-10-28 14:22:54 +08:00
    jugelizi
        1
    jugelizi  
       2018-10-27 17:31:46 +08:00
    观察者
    监听一下多久没反应就告警呗
    Trim21
        2
    Trim21  
       2018-10-27 17:55:39 +08:00 via Android
    try: start_spider()
    except: beep()
    JCZ2MkKb5S8ZX9pq
        3
    JCZ2MkKb5S8ZX9pq  
    OP
       2018-10-27 18:25:45 +08:00
    @Trim21 这么粗放的嘛……
    lhx2008
        4
    lhx2008  
       2018-10-27 18:29:32 +08:00
    你这样 try 就没有问题啊

    try:
    try:
    except: ... throw Exception
    try:
    except: ... throw Exception
    try:
    except: ... throw Exception
    try:
    except: ... throw Exception
    try:
    except: ... throw Exception
    except:
    beep()
    misaka19000
        5
    misaka19000  
       2018-10-27 18:59:45 +08:00 via Android   1
    print("\a")
    ninestep
        6
    ninestep  
       2018-10-27 20:57:07 +08:00
    首先,经常出错你就得检查一下你的代码了,如果是固定的一些地方出错,那就加异常捕获把,如果是随机出错,那就写个进程守护就好了嘛,supervisord 好像有邮件报警的功能
    serical
        7
    serical  
       2018-10-27 21:11:59 +08:00 via Android
    mac 调起 shell say xxx
    JCZ2MkKb5S8ZX9pq
        8
    JCZ2MkKb5S8ZX9pq  
    OP
       2018-10-27 21:47:11 +08:00
    @ninestep 现在就是错一次打一点补丁,但就是经常过了几个小时才想起来看一眼。
    ysc3839
        9
    ysc3839  
       2018-10-27 21:55:08 +08:00 via Android
    简单的话可以 print 一个 bell 字符,终端一般会响。
    复杂的话根据平台发送通知。Python 应该有现成的库。
    JCZ2MkKb5S8ZX9pq
        10
    JCZ2MkKb5S8ZX9pq  
    OP
       2018-10-27 22:18:58 +08:00
    @misaka19000 这个第一次知道,666。加了一秒延迟,无限循环了。
    billiepander
        11
    billiepander  
       2018-10-27 22:25:23 +08:00
    用 supervisor autorestart 它吧
    scriptB0y
        12
    scriptB0y  
       2018-10-27 22:40:31 +08:00
    sentry, systemd

    不过最靠谱的还是碰到问题 LOG 下来,或者写到 csv 里面,程序继续跑。

    后面根据出错的日志将错误的信息重新搞一下。
    JCZ2MkKb5S8ZX9pq
        13
    JCZ2MkKb5S8ZX9pq  
    OP
       2018-10-27 22:55:20 +08:00
    @scriptB0y 我是爬取同时就清洗了,另外有分析程序实时就输出结果了,所以会遇到一些意外情况。
    有时候是返回意外情况,有时候是对方程序员数据库里写错类型,或者还会有蜜罐之类的。

    如果是死活不管先都爬下来,另外跑一个清洗流程,倒是可以。
    但也会碰到相应的弊端,比如爬到错误内容而没有及时察觉。
    cnit
        14
    cnit  
       2018-10-28 14:22:54 +08:00
    用 server 酱
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     4713 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 29ms UTC 01:12 PVG 09:12 LAX 17:12 JFK 20:12
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86