以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]Try 捕捉不到DecryptText错误  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=179303)

--  作者:洮沙
--  发布时间:2022/8/17 15:35:00
--  [求助]Try 捕捉不到DecryptText错误

Dim s As String
Dim jm As String
If FileSys.FileExists(fl2) Then \'判断新sn.txt文件是否存在
    s = FileSys.ReadAllText(fl2) \'从新sn.txt文件中读出注册码
    Try
        jm = DecryptText(s, "Qtkj2016", "123456") \'解密注册码
    Catch ex As Exception
        MessageBox.Show("错误注册码!", "警告", MessageBoxButtons.OK , MessageBoxIcon.Warning)
        Return
    End Try
End If

有以上代码,Try 捕捉不到DecryptText错误,还是显示:

.NET Framework 版本:4.0.30319.42000
Foxtable 版本:2022.8.13.1
错误所在事件:窗口,注册,Button1,Click
详细错误信息:
长度不能小于 0。
参数名: length

 

麻烦老师帮忙看一下,能否显示自设msbox内容?谢谢!



--  作者:有点蓝
--  发布时间:2022/8/17 15:56:00
--  
这个没有办法,DecryptText内部处理掉了异常,没有抛出来。这种只能到BeforeShowErrorMessage事件处理。

或者考虑自己使用.net的用法做加解密,这样就可以自己捕捉异常,比如:http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=160819&skin=0

--  作者:洮沙
--  发布时间:2022/8/17 16:05:00
--  

蓝老师,我这样写对吗?

If e.Event = "窗口,注册,Button1,Click" Then
    e.Cancel = True
End If

 

另外如果 DecryptText(s, "Qtkj2016", "123456") \'解密注册码

发生错误,如何知道并进行判断,终止后边代码执行?

 

 

加了以下判断,完美解决:

If jm.Length = 0 Then
        MessageBox.Show("错误注册码!", "警告", MessageBoxButtons.OK , MessageBoxIcon.Warning)
        Return
    End If

[此贴子已经被作者于2022/8/17 16:20:22编辑过]

--  作者:有点蓝
--  发布时间:2022/8/17 16:23:00
--  
出错的代码基本没有办法在BeforeShowErrorMessage事件判断终止后边代码执行。这个事件基本只能用来做日志
--  作者:洮沙
--  发布时间:2022/8/17 16:36:00
--  
明白了,谢谢!