zoukankan      html  css  js  c++  java
  • python08篇 发邮件和异常处理

    一、发邮件

    import yamail
    
    smtp = yamail.SMTP(host='smtp.qq.com',   # 改成自己邮箱的服务器即可,其他的比如smtp.163.com
                       user='651*****@qq.com',  # 发送邮箱用的用户名
                       password='')   # 如果是163、qq等免费邮箱的话需要授权码,自己公司的邮箱,一般都使用密码.授权码需要再邮箱的设置-帐户-POP3/SMTP服务(开启服务)
    smtp.send(to=['511****@qq.com'],  # 发送给谁,如果是多少,就在list中添加多个
              subject='请查收',  # 邮件主题
              cc=['285*****@qq.com'],  # 抄送给谁,如果是多少,就在list中添加多个
              contents='邮件正文',  # 邮件正文
              attachments=['笔记.txt'])  # 附件,如果有多个附件,写list中
    smtp.close()

    二、异常以及异常处理

    2.1 异常

    运行期检测到的错误被称为异常。

    大多数的异常都不会被程序处理,都以错误信息的形式展现在这里:

    >>> 10 * (1/0)             # 0 不能作为除数,触发异常
    Traceback (most recent call last):
      File "<stdin>", line 1, in ?
    ZeroDivisionError: division by zero
    >>> 4 + spam*3             # spam 未定义,触发异常
    Traceback (most recent call last):
      File "<stdin>", line 1, in ?
    NameError: name 'spam' is not defined
    >>> '2' + 2               # int 不能与 str 相加,触发异常
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    TypeError: can only concatenate str (not "int") to str

    2.2 异常处理

    try/except

    异常捕捉可以使用 try/except 语句。

    try 语句按照如下方式工作;

    • 首先,执行 try 子句(在关键字 try 和关键字 except 之间的语句)。

    • 如果没有异常发生,忽略 except 子句,try 子句执行后结束。

    • 如果在执行 try 子句的过程中发生了异常,那么 try 子句余下的部分将被忽略。如果异常的类型和 except 之后的名称相符,那么对应的 except 子句将被执行。

    • 如果一个异常没有与任何的 except 匹配,那么这个异常将会传递给上层的 try 中。

    一个 try 语句可能包含多个except子句,分别来处理不同的特定的异常。最多只有一个分支会被执行。

    处理程序将只针对对应的 try 子句中的异常进行处理,而不是其他的 try 的处理程序中的异常。

      try/except 语句还有一个可选的 else 子句,如果使用这个子句,那么必须放在所有的 except 子句之后。

    else 子句将在 try 子句没有发生任何异常的时候执行。

      try-finally 语句无论是否发生异常都将执行最后的代码。

    import traceback
    try:
        '1' + 2
        2 / 0
    except TypeError as e:  # e 具体的错误信息
        print(e)
        print('出错了')
    except ZeroDivisionError as e:
        print(e)
    except IndexError :
        print('下标错误')
    except KeyError as e:
        print(e)
    except FileNotFoundError as e:
        print('文件找不到')
    except Exception as e:  # Exception 是所有异常的基类,只要出现异常,都能捕捉,但不能确定是具体哪种异常
        # traceback.print_exc()  # 打印堆栈信息
        print('自己加的', traceback.format_exc())  # 把堆栈信息写入到日志中用此方法
        print('出异常了', e)
    else:
        print('没有出异常')
    # 不管出不出异常,都执行finally中的代码.实际场景使用:比如关闭文件,关闭数据库连接等等
    finally:
        print('不管出不出异常,都执行finally中的代码')
  • 相关阅读:
    Jmeter -准备篇
    SQL-DELETE
    SQL-UPDATE
    SQL- AND & OR & Order by & INSERT INTO
    SQL-WHERE
    SQL- select distinct
    SQL-select
    【图】max51开发板top页
    simple_spi_top
    UART.V
  • 原文地址:https://www.cnblogs.com/lhy-qingqiu/p/13649195.html
Copyright © 2011-2022 走看看