Sol*_*eus 9 java stack-overflow multithreading
我正在编写一个评分程序,用于学生正在实施递归排序算法.这意味着几个学生可能会输入损坏的代码,导致堆栈溢出.我想以某种方式捕获在调用学生代码时发生的堆栈溢出,以便我可以从他们的分数中扣除并继续进行其他测试.不幸的是,堆栈溢出似乎没有经过其他异常的标准路径 - try/catch块似乎没有帮助.有没有办法在堆栈溢出发生后将执行返回到我的代码?我已经研究过使用线程来做到这一点,但它似乎回到了无法使用try/catch.
Mat*_*yas 14
在调用学生的方法时,你应该在try-catch块中嵌入调用并捕获Exceptions Throwables.
请参阅以下代码:
public class Test {
/**
* @param args
*/
public static void main(String[] args) {
try {
soe();
} catch (Throwable e) {
System.out.println("Caught:" + e
+ ", everything went better than expected.");
}
}
/**
* Method producing StackOverflowError
*/
public static void soe() {
soe();
}
}
更多信息
赶上Throwables时你会发现:
Exceptions - 强制你使用try-catch或throws(例如IOException)RuntimeExceptions - 通过方法冒泡(例如NullPointerException)Errors - 例如. StackOverflowError请参阅该对象的官方Java DocsThrowable
| 归档时间: |
|
| 查看次数: |
714 次 |
| 最近记录: |