当前位置: 首页 > 面试题库 >

您如何获得Golang程序来打印刚刚调用的错误的行号?

江丰羽
2023-03-14
问题内容

我试图用Golang程序抛出错误,log.Fatal但同时log.Fatal也没有打印出log.Fatal运行行。无法访问名为log.Fatal的行号吗?即有没有办法在抛出错误时获取行号?

我试图用谷歌搜索,但不确定如何。我能得到的最好的结果是打印堆栈跟踪信息,我认为这很好,但可能有点过多。我也不想debug.PrintStack()每次都需要行号时就写东西,我只是感到惊讶,没有任何内置函数可以用于这种log.FatalStackTrace()或非服装的东西。

另外,我不想制作自己的调试/错误处理工具的原因是,我不想让人们不得不学习如何使用我的特殊服装处理代码。我只想要一些标准,人们以后可以阅读我的代码,就像

“嗯,所以它抛出一个错误并执行X …”

了解我的代码的人越少越好:)


问题答案:

您可以在自定义记录仪上设置标志,也可以在默认值上设置为包含LlongfileLshortfile

// to change the flags on the default logger
log.SetFlags(log.LstdFlags | log.Lshortfile)


 类似资料:
  • 我试图用在我的Golang程序中抛出错误,但是并不打印运行的行。是否无法访问调用log.fatal的行号?也就是说,在抛出错误时,是否有方法获取行号? 我试图谷歌这个,但不确定如何。我能得到的最好的东西是打印堆栈跟踪,我想这是好的,但可能有点太多了。我也不想每次需要行号时都编写,我只是很惊讶没有任何内置函数用于此,比如或一些不是服装的函数。 “啊,好吧,所以它扔了一个错误,做了X...” 了解我的

  • 问题内容: 我已经开始执行以下代码 现在,我需要知道我刚刚开始的进程的pid。 问题答案: 由于Java 9类具有新方法long pid(),因此它很简单

  • 问题内容: 如何撤消最近执行的mysql查询? 问题答案: 如果将表类型定义为InnoDB,则可以使用事务。您将需要set ,并且可以在发出之后或在查询或会话结束时提交或取消交易。

  • 问题内容: 我正在使用Python和psycopg2连接到Postgres。 当我插入一行时… …如何获取刚刚插入的行的ID?试: 使用时返回错误: 简单地返回。 更新:也是(即使直接在postgres中使用此命令也可以): 有人可以建议吗? 谢谢! 问题答案: 并且,请不要手动构建包含值的SQL字符串。您可以(并且应该!)单独传递值,从而不必进行转义和SQL注入: 有关更多详细信息,请参见psy

  • 问题内容: 如果所有数据被意外删除,是否可以将表恢复为上一次数据。 问题答案: 还有另一种解决方案,如果服务器上有活动的二进制日志,则可以使用 用它生成一个sql文件 然后搜索您缺少的行。如果您没有激活它,则没有其他解决方案。下次进行备份。

  • 问题内容: 我只是运行了一个简单的MySQL CREATE TABLE语句,该语句产生了这一行 “查询确定,受影响的行为0,警告为1(0.07秒)。” 但是,它实际上并没有告诉我警告是什么。您如何查看刚刚发生的警告的内容?我正在使用MySQL 5.1,如果有帮助的话。我在网上唯一发现的是“ SHOW WARNINGS;但这只会产生 “空集(0.00秒)。” 问题答案: 是我知道的唯一方法,但是必须