我正在使用go语言进行项目。我需要在go中运行一段js代码。我知道有一个包是otto。我的问题是如何获取js代码的详细错误消息。例如:
src :=`
abc = 2 +
console.log("The value of abc is " + abc)
`
当我做某事时,请说compile(src)
然后我会得到错误:
在第二行错过了一些东西而错过了';'在第三行。
就像编译器一样
我在发布问题之前已经尝试使用otto编译,返回的错误是nil。
使用func (self Otto) Run(src interface{}) (Value, error)
otto上述代码将返回错误,但如果代码变为
abc = 9
abc = 2 +
console.log("The value of abc is " + abc)
func (self Otto) Run(src interface{}) (Value, error)
和func (self *Otto) Compile(filename string, src interface{}) (*Script, error)
错误均为
答案 0 :(得分:1)
我打算让你做不充分的研究。一个简单的谷歌“golang otto”带来the Github page.有一个相当不错的README.markdown文档。阅读它。
然后你发现奥托有
func (self *Otto) Compile(filename string, src interface{}) (*Script, error)
这就是它的好处。运行它,看看你在返回的错误值中得到了什么。
type Error struct {
}
An Error represents a runtime error, e.g. a TypeError, a ReferenceError, etc.
func (err Error) Error() string
Error returns a description of the error
func (err Error) String() string
String returns a description of the error and a trace of where the error occurred.