以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 关于服务器端报错 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=148008) |
-- 作者:sky-18 -- 发布时间:2020/3/29 0:08:00 -- 关于服务器端报错 有个问题请教老师。 就是当服务器弹出错误提示框后,服务器处于一个卡死状态。 这时候客户端无法访问服务器。 虽然我知道把服务器的代码写完美且没有bug自然就不会报错,但找bug这个过程需要一个长时间使用的过程。 一旦服务器出现bug,那所有的客户端都无法访问服务器。非得开发者去解决服务器问题后才能恢复客户端访问。 这样很打击客户端使用者的积极性。 有没有办法不让客户端报错呀?即使在运行时遇到bug就将其"无害化",至少不要影响客户端出现访问 请老师指点,谢谢。
|
-- 作者:sky-18 -- 发布时间:2020/3/29 9:53:00 -- 自己顶一下 |
-- 作者:huangfanzi -- 发布时间:2020/3/29 11:19:00 -- 我也帮你顶,我也是遇到这样的问题,所以经常远程连上服务器关闭报错窗口 |
-- 作者:sky-18 -- 发布时间:2020/3/29 13:23:00 -- 我在帮助文档里看到有个捕获错误的方法 Try 但是文档又说 不要轻易使用Try语句 不要轻易使用Try语句来捕获错误,除非遇到事先不能预判的错误,随便使用Try语句会降低代码质量和运行效率。 我就知道者不是我要的方法了。 请问老师对于服务器代码来说是不是有不然服务器报错的办法呢? 想一下代码量巨大的服务器来说有BUG是很正常的,不可能一报错,所有客户端都无法访问了呀。 |
-- 作者:刘林 -- 发布时间:2020/3/29 15:22:00 -- 1.项目事件BeforeShowErrorMessage在Foxtable捕获错误并即将显示错误信息前执行。 Functions.Execute("LogText",e.ex) e.Cancel = True 2.自定义函数logtext Dim v = Args(0) Dim msg As String If Typeof v Is Exception Then \'如果是Exception的异常类型,则递归获取所有的异常堆栈 Do While v IsNot Nothing msg &= v.Message & vbcrlf & v.StackTrace & vbcrlf v = v.InnerException Loop Else \'其它情况只能传入错误的文本内容 msg = v End If Output.Logs("AppLogging").Add(Format( Date.Now,"yyyy-MM-dd HH:mm:ss.ffff") & vbCrLf & msg) Output.Logs("AppLogging").Save(ProjectPath & "Mmsglog.txt",True) \'日志位于当前项目目录里 Output.Logs("AppLogging").Clear |
-- 作者:sky-18 -- 发布时间:2020/3/30 5:58:00 -- 十分感谢 |
-- 作者:huangfanzi -- 发布时间:2020/3/31 9:13:00 -- 原来可以这样啊,我目前就是加入了Try语句,但没用,只是减少了报错的机率,还是会一个月来上个1回2回的 |