提交 8f5a875a 编写于 作者: J Jason Park

Add error types on frontend

上级 48ae5636
import Promise from 'bluebird';
import axios from 'axios';
import { RuntimeError } from '/common/error';
axios.interceptors.response.use(
response => response.data,
......@@ -73,7 +74,7 @@ const TracerApi = {
if (jsWorker) jsWorker.terminate();
jsWorker = new Worker('/api/tracers/js');
jsWorker.onmessage = e => resolve(e.data);
jsWorker.onerror = reject;
jsWorker.onerror = e => reject(new RuntimeError(e.message));
jsWorker.postMessage(code);
}),
java: POST('/tracers/java'),
......
class ApplicationError extends Error {
constructor(message) {
super(message);
this.name = this.constructor.name;
}
}
class CompileError extends ApplicationError {
}
class RuntimeError extends ApplicationError {
}
export {
ApplicationError,
CompileError,
RuntimeError,
};
\ No newline at end of file
......@@ -4,6 +4,7 @@ import { extension } from '/common/util';
import { Array1DData, Array2DData, ChartData, Data, GraphData, LogData } from '/core/datas';
import { Array1DRenderer, Array2DRenderer, ChartRenderer, GraphRenderer, LogRenderer, Renderer } from '/core/renderers';
import { TracerApi } from '/apis';
import { CompileError } from '/common/error';
class TracerManager {
constructor() {
......@@ -158,7 +159,7 @@ class TracerManager {
if (ext in TracerApi) {
return TracerApi[ext]({ code: content });
} else {
return Promise.reject(new Error('Language Not Supported'));
return Promise.reject(new CompileError('Language Not Supported'));
}
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册