我正在练习golang,我不知道如何捕捉错误.
我期待的是:
FetchTickerData 运行fetchPriceTicket和fetchWhatToMineFetchTickerData返回该错误我无法弄清楚如何捕捉错误.我写了这段代码,但我不认为这是正确的解决方案,它不起作用.有什么更好的方法呢?
package main
import "net/http"
import (
"github.com/tidwall/gjson"
"time"
"io/ioutil"
"fmt"
)
var client = &http.Client{Timeout: 10 * time.Second}
type Ticker struct {
}
func FetchTickerData() (error, *gjson.Result, *gjson.Result) {
whatToMine := make(chan *gjson.Result)
currency := make(chan *gjson.Result)
err := make(chan error)
counter := 0 // This variable indicates if both data was fetched
go func() {
innerError, json := fetchWhatToMine()
fmt.Print(innerError)
if innerError != nil {
err …Run Code Online (Sandbox Code Playgroud) 例如,我有一个编译后的二进制文件cudaDeviceQuery,它以 JSON 形式返回设备列表。这是一段代码:
export default function cudaDeviceQuery(): Promise<CollectorResponse> {
const throwError = () => {
throw new Error("Unfortunately your platform isn't yet unsupported");
};
const file = __DARWIN__
? path.join(__dirname, 'darwin', 'cudaDeviceQuery')
: __WIN32__
? path.join(__dirname, 'win', 'cudaDeviceQuery.exe')
: throwError();
const descriptor = spawn(file);
return new Promise((resolve, reject) => {
let outerData = '';
descriptor.stdout.on('data', data => {
outerData += data;
});
descriptor.on('close', () => {
try {
resolve(JSON.parse(outerData));
} catch (e) {
reject(e);
}
});
});
} …Run Code Online (Sandbox Code Playgroud)