【OJ】沙箱代码调试
...大约 2 分钟
【OJ】沙箱代码调试
参考功能说明:http://www.ikun-oj.top/view/question/1720794298284281858/description
题目描述、题解、提交记录(查看提交记录,显示提交信息)
如果编译失败,则可将编译结果进行返回(例如引入在线调试接口等,返回相应的提示信息:编译、调试、输入测试用例等)
编译成功
ExecuteMessage(exitValue=0, message=, errorMessage=null, time=274, memory=null)
运行失败,错误码: 1
ExecuteMessage(exitValue=1, message=, errorMessage=错误: 在类 Main 中找不到 main 方法, 请将 main 方法定义为:
public static void main(String[] args)
否则 JavaFX 应用程序类必须扩展javafx.application.Application, time=34, memory=null)
删除成功
超时了,中断
求两数之和
运行参考代码
public class Main {
public static void main(String[] args) {
int a = Integer.parseInt(args[0]);
int b = Integer.parseInt(args[1]);
System.out.println("结果:" + (a + b));
}
}
Status:code为0正常响应、status是判题响应状态 :参考QuestionSubmitStatusEnum
1.正常示例
运行成功=》发送响应内容(提示错误信息等)
# 参考示例
{
"code": "",
"judgeInfo": "",
"language": "",
"questionId": 1787049705855799298,
"status": 0
}
# 正常请求(正常编译测试)
{
"code":"public class Main {\r\n public static void main(String[] args) {\r\n int a = Integer.parseInt(args[0]);\r\n int b = Integer.parseInt(args[1]);\r\n System.out.println(\"结果:\" + (a + b));\r\n }\r\n}",
"language": "",
"questionId": 1787049705855799298,
"status": 0
}
请求参数错误
未指定核心参数信息(例如questionId)
{
"code": "",
"judgeInfo": "",
"language": "",
"questionId": 0,
"status": 0
}
调用结果
{
"code": 40000,
"data": null,
"message": "请求参数错误"
}
2.定义类名出错(Main)
传入code为空,或者没有检测到以Main主类
请求数据
{
"code":"public class Hello {\r\n public static void main(String[] args) {\r\n int a = Integer.parseInt(args[0]);\r\n int b = Integer.parseInt(args[1]);\r\n System.out.println(\"结果:\" + (a + b));\r\n }\r\n}",
"language": "",
"questionId": 1787049705855799298,
"status": 0
}
响应数据:
{
"code": 0,
"data": {
"outputList": [],
"message": "错误: 找不到或无法加载主类 Main\n原因: java.lang.ClassNotFoundException: Main",
"status": 3,
"judgeInfo": {
"message": null,
"memory": null,
"time": "0"
}
},
"message": "ok"
}
自定义全局异常不生效的原因:
确认自定义异常处理类的实现
确认自定义异常有没有被包含再Springboot扫描的区域(例如启动类xxxApplication是不是放在某个包里面,作用域没有扫描到全局的内容)。例如全局异常写在其他模块(公共模块、非服务),如果没有开启包扫描,或者启动类放在其他包内部,作用域没有起作用(例如在framework模块定义自定义异常,而Application启动类却放在oj包下,导致没有扫描到相应的类定义)
注意自定义异常处理,将相应的响应信息返回给backend(不要只返回服务器响应异常)
Powered by Waline v3.1.3