maokaijiang 2020-02-13
最近刚学了数据库,在对数据库文件进行处理的时候第一步便是连接数据库吧。我看了很多遍文章关于数据库的连接都是老两步,调用pymssql库,一顿操作猛如虎(题外话:使用sqlserver的小伙伴,十二在这里强烈建议大家不要添加sa用户,原因就是太不安全。。)
import pymssql conn = pymssql.connect(r‘服务器名‘, ‘用户名‘, ‘密码‘, ‘数据库名‘)
但是有个问题一直困扰着我,如果数据库连接失败,将会如何?任凭程序在编译器里报错?作为写程序的人一定知道,哦,我数据库没连接上。但当有其他人用你写的代码做东西时(比如我),纯代码还好,能看到报错,但一旦加了UI封装,数据库到底有没有连接上,用户就不知道的,程序崩溃退出,用户也不知道什么情况。
一开始呢,我是像加个判断条件不就好咯,如果连接不上,返回一个错误的值,实在不行做个弹窗。但我尝试了一下,发现好像不太行,看了网上的许多代码,好像。。也不太行。原因基本上都差不多(大家有空可以都去看看),程序在连接时就已经报错了后面的if条件跟本跳转不过去(QAQ)。所以我这里使用了另一种方法,就是try…catch…
本人也是萌新一枚,啥都不懂,python也是刚学,对try,catch的具体用法也不是很了解,在此献丑了(调用tkinter模块,蹦一个警告弹窗出来)
def sqltest(): # 测试连接 try: conn = pymssql.connect(r‘服务器名‘, ‘用户名‘, ‘密码‘, ‘数据库名‘) except BaseException: tkinter.messagebox.showwarning("警告", ‘未连接至数据库,请检查数据库参数设置‘) exit(0) else: conn.close()
这样把数据库连接当做异常处理,连接不上报异常,就可以了(^-^)。。(萌新第一次发帖,不足之处希望各位大佬多提提意见,十二一定虚心接受。。)