目录
1.抛出异常后QAppliaction自动闪退
开发阶段,PyQt5 QAppliaction会在遇到未捕获的异常时立即退出,它能够快速发现并报告错误,我在调用一些密码算法库的时候,也出现这样的情况,但我并不希望出现异常导致应用程序直接闪退了,比如说我在调用AEAD-GCM解密时,如果tag不对,就会程序就会直接闪退。
那么我们就要分析,如何把这个异常捕获住并在应用程序端显示错误,程序继续运行。
Pyhon中如果出现未被捕获的异常时,会调用 sys.excepthook 函数来处理异常信息。sys.excepthook 是一个全局函数,当程序中有异常未被处理时,会自动调用该函数来打印异常信息或进行其他处理。所以我们可以通过重写 sys.excepthook 来实现自定义的异常处理逻辑。通过重写 excepthook,我们可以捕获应用程序中的异常,记录错误日志,或者在程序崩溃前显示一个错误提示框。
因为我们首先定义一个函数,例如excption_handle,在里面实现自定义的代码,
然后将这个函数赋给sys.excepthook, 最后实现效果如下:
这样程序就不会崩溃了,很完美。
2.Unbuntu共享文件夹自动挂载
首先在Window找一个路径新建一个文件夹,把想要共享的东西放进去,如下:
Virturl Box中找到对应VM,然后点击设置 ->共享文件夹,设置对应路径,并一定勾选"自动挂载"
然后打开VM,需要配置VM端的挂载。
首先在终端里获取root权限,在mnt文件夹(Linux用于挂载文件系统的目录)里创建文件夹,输入命令:
bash
sudo su
//输入密码获取root权限
mkdir /mnt/share #在mnt创建share文件夹,这个名字无所谓,但是请记住它
目录建立好后,我们就开始进行挂载,在同样获取权限,输入命令:
bash
sudo su
mount -t vboxsf ShareFile /mnt/share
这个时候我们就能看到共享文件夹里的内容了,如下图:
But,凡事都有But。
每次VM关机后,必须要重新进行一次挂载操作,才能看到文件夹内容。
网上有些教程说编辑fstab文件,命令如下:
cpp
sudo su
vi /etc/fstab
在该文件UUID里添加:
cpp
.host:/ /mnt/share fuse.vmhgfs-fuse allow other, defaults 0 0
但是仍然不奏效,启动时显示如下图:
不是很靠谱呀,有没有朋友能够解决这个自动挂载问题呢?