本帖最后由 jiongjionger 于 2017-6-25 15:47 编辑
发这个帖子源自一个建议(https://github.com/jiongjionger/NeverLag/issues/19)。群里有人说,看不懂报错的人,即便直观的显示报错的插件叫什么,处理什么事件的时候出错,对小白腐竹也没任何帮助。我个人觉得起码可以让小白腐竹知道是什么插件出的问题,可以选择升级或者卸载来尝试解决。
我想想听听各位腐竹的看法,你们觉得这样一个功能,有无必要?
后续:感谢各位的回复,我会增加这个新功能:)
发这个帖子源自一个建议(https://github.com/jiongjionger/NeverLag/issues/19)。群里有人说,看不懂报错的人,即便直观的显示报错的插件叫什么,处理什么事件的时候出错,对小白腐竹也没任何帮助。我个人觉得起码可以让小白腐竹知道是什么插件出的问题,可以选择升级或者卸载来尝试解决。
我想想听听各位腐竹的看法,你们觉得这样一个功能,有无必要?
后续:感谢各位的回复,我会增加这个新功能:)
当然有必要这样还可以很快的看出报错,不用再去用一些百度翻译的什么翻译了
有必要
如果出现报错时,即使小白不知道为何报错
也能快捷的知道这个报错源自何处,然后向作者反馈
如果出现报错时,即使小白不知道为何报错
也能快捷的知道这个报错源自何处,然后向作者反馈
有必要,这可以节省一大笔时间去慢慢找=-=

个人认为比较有必要,万一有些服主是大佬而不是小白服主呢(比如楼主)
而且小白也可以向大佬们请教

当然有必要啦,MOD服开服以来报错就没停过。。。
有必要,后台一堆报错,看得都马上眼瞎了,有这个功能当然好
当然有必要了。
至少,可以更优♂雅也更直观一些 滑稽。毕竟我们的母语是中文。一些阅读英文能力不强的新手腐竹,很容易看见报错一脸懵逼。如果写成中文,也可以更轻易地引导他们自己去探索解决方案。
举个栗子:
和
对比,我当然选择上面的。
至少,可以更优♂雅也更直观一些 滑稽。毕竟我们的母语是中文。一些阅读英文能力不强的新手腐竹,很容易看见报错一脸懵逼。如果写成中文,也可以更轻易地引导他们自己去探索解决方案。
举个栗子:
这个叫 XXX 的插件在被执行 XXX 命令时出了异常,以下是异常原因:
和
org.bukkit.command.CommandException: Unhandled exception executing command 'XXX' in plugin XXX
对比,我当然选择上面的。
支持显示插件名
唔。。。对有些人还是有必要的吧,但是真正做大的服务器好像也没有什么必要;如果能在config里自由地选择到底要不要显示那就更好了。
有必要啊,省去了一个一个排插的问题插,节省时间插
我觉得是有必要的,有利于更快的排查错误
十分必须,加快了查询错误的速度
完全没有必要
开服是有门槛的。
现在国内服务器还不够多吗?
开服是有门槛的。
现在国内服务器还不够多吗?
本帖最后由 andylizi 于 2017-6-25 18:11 编辑
还有。
如果这个工具强行把原本的报错内容替换成中文的,那么当服主解决不了这个问题,要反馈给作者的时候呢?想象你下你是插件作者(很可能还是外国人,看不懂中文),当你要别人发错误报告时人家给你发来一堆这玩意。
以前某you-know-who作者的you-know-what插件就有这个功能,每次看见有人反馈时带上那东西生成的报告时第一句话就是请先把那东西关了。
强烈反对。
edit: 另,即使只注明是哪个插件产生了这个报错,也是有风险的。有的时候(虽然几率很小),某些插件可能会因为另一些插件的影响而产生莫名其妙的报错,比如我记得我见过一个关于 PlayerTeleportEvent 的,只要有玩家传送,后台每一个注册了 PlayerTeleportEvent 监听器的插件都一起产生了报错,其中包括 Essentials、PlotMe 等。至今没搞明白这是怎么做到的。。
即使这样的情况很少见,通过 CauseBy 判断罪魁祸首也是不安全的。设想 A插件 调用了 B插件 提供的一个API,但不小心传入了一个不合法的 null 参数,导致 B插件 的某方法里抛NPE。这个时候 CauseBy 指向的是 B插件,这时应该算谁的?
如果算 A插件 的,那还有可能出现这样的情况:A插件传入的参数是合法的,出错完全是 B插件 的锅,这时 CauseBy 指向的仍然是 B插件。算法该如何判别这两种情况?
还有。
如果这个工具强行把原本的报错内容替换成中文的,那么当服主解决不了这个问题,要反馈给作者的时候呢?想象你下你是插件作者(很可能还是外国人,看不懂中文),当你要别人发错误报告时人家给你发来一堆这玩意。
以前某you-know-who作者的you-know-what插件就有这个功能,每次看见有人反馈时带上那东西生成的报告时第一句话就是请先把那东西关了。
强烈反对。
edit: 另,即使只注明是哪个插件产生了这个报错,也是有风险的。有的时候(虽然几率很小),某些插件可能会因为另一些插件的影响而产生莫名其妙的报错,比如我记得我见过一个关于 PlayerTeleportEvent 的,只要有玩家传送,后台每一个注册了 PlayerTeleportEvent 监听器的插件都一起产生了报错,其中包括 Essentials、PlotMe 等。至今没搞明白这是怎么做到的。。
即使这样的情况很少见,通过 CauseBy 判断罪魁祸首也是不安全的。设想 A插件 调用了 B插件 提供的一个API,但不小心传入了一个不合法的 null 参数,导致 B插件 的某方法里抛NPE。这个时候 CauseBy 指向的是 B插件,这时应该算谁的?
如果算 A插件 的,那还有可能出现这样的情况:A插件传入的参数是合法的,出错完全是 B插件 的锅,这时 CauseBy 指向的仍然是 B插件。算法该如何判别这两种情况?
andylizi 发表于 2017-6-25 18:02
还有。
如果这个工具强行把原本的报错内容替换成中文的,那么当服主解决不了这个问题,要反馈给作者的时候 ...
我在想,要不要折中一下。记录插件的异常次数。然后单独做一个log文件只保存异常。
当然,这个功能是可以关闭的。
有必要,支持
jiongjionger 发表于 2017-6-25 18:32
我在想,要不要折中一下。记录插件的异常次数。然后单独做一个log文件只保存异常。
当然,这个功能是可以 ...
记录插件的异常次数是指记录产生异常的插件吗。。可怎么判别是哪个插件产生了异常
单独做一个log只保存异常指的是保存原版异常还是新版异常
非常有必要
比如我= =
一堆报错看不懂
比如我= =
一堆报错看不懂
最好输出一个文本
里面是报错的插件
这样会好看一些
里面是报错的插件
这样会好看一些
每个人角度不同,对于新手腐竹最好是可以有,因为真的会方便很多。服务器好自然会人多,不好自然人没。虽然不懂编程但是利用好现有的插件服务器还是可以做好的。我觉得有必要有
andylizi 发表于 2017-6-25 19:00
记录插件的异常次数是指记录产生异常的插件吗。。可怎么判别是哪个插件产生了异常
单独做一个log只保存异 ...
我的想法是在https://github.com/jiongjionger/ ... orInjector.java#L67
后面catch来自增,获得这个插件的某个Event的异常次数。当然,有时候因为依赖、前置等等,可能不够准确。
log是单独有个文件保存原始的异常信息,用于线上debug(可以指令开关)
andylizi 发表于 2017-6-25 19:00
记录插件的异常次数是指记录产生异常的插件吗。。可怎么判别是哪个插件产生了异常
单独做一个log只保存异 ...
我的想法是在https://github.com/jiongjionger/ ... orInjector.java#L67
后面catch来自增,获得这个插件的某个Event的异常次数。当然,有时候因为依赖、前置等等,可能不够准确。
log是单独有个文件保存原始的异常信息,用于线上debug(可以指令开关)
自己开个联机服的时候 经常就是一大堆应该是报错但我看不懂的消息...
很有必要啊
很有必要啊
很有必要,可以大大减少排除其他的可能所耗的时间,直接就知道哪个插件出问题了 这功能还真能实现?
很有必要,真的
个人建议可以添加,但是有些腐竹喜欢需要完整报错方便直接反馈给插件作者
当然有些小白腐竹因为看不懂就回去转载贴问或者链接问答板块
如果你的NeverLag2有这项功能的话建议做一个开关!
当然有些小白腐竹因为看不懂就回去转载贴问或者链接问答板块
如果你的NeverLag2有这项功能的话建议做一个开关!
研究过这个 但是太复杂了 不是程序能完成的 主要是有很多插件
本帖最后由 andylizi 于 2017-6-26 18:14 编辑
Indeed. 我想表达的是:
1、这是一个没用的功能
2、它有很多坏处
因此 坏处>好处
而且服务器多倒没什么,但是平均质量惊人的差。
V乐乐 发表于 2017-6-26 14:30
可是我觉得,不能因为服务器多而作为延缓插件建设吧。。。
Indeed. 我想表达的是:
1、这是一个没用的功能
2、它有很多坏处
因此 坏处>好处
而且服务器多倒没什么,但是平均质量惊人的差。
of course!这个功能简直就是对我的救赎
有必要,这样可以省很多去慢慢找报错的时间。
感觉有必要,很多小白看不懂。
本帖最后由 rtz43 于 2017-6-30 16:24 编辑
插件报错本身是。。Java的错误堆栈?
我觉得倒是可以直接输出每个插件的包名
然后让腐竹自己对着包名找报错插件
直接贴上完整的报错信息给作者才能帮助作者更好的确定问题。。
如果只是想找哪个插件在报错,
直接对着包名找也许就完事了。。
插件报错本身是。。Java的错误堆栈?
我觉得倒是可以直接输出每个插件的包名
然后让腐竹自己对着包名找报错插件
直接贴上完整的报错信息给作者才能帮助作者更好的确定问题。。
如果只是想找哪个插件在报错,
直接对着包名找也许就完事了。。
我觉得有必要的,因为有一些报错,他可以通过英文机翻能大概了解他是怎么样的一个错误,作为小白,仅能通过这个方式来判断这个插件是否还值得娶用
有 还是有这个功能好。