运行代码提示如下:
com\itzhimei\LockSampleTest.java:26:29
java: 未报告的异常错误java.lang.InterruptedException; 必须对其进行捕获或声明以便抛出
行号 |
20 |
|@Override
|public void run() {
| synchronized (first) {
| System.out.println("获取了first锁");
26 | synchronized (second) {
| Thread.sleep(1000L);
| System.out.println("获取了second锁");
| }
| }
30 |}
解决:
方法一,把对应需要异常处理的代码try-catch,代码如下
@Override
public void run() {
synchronized (first) {
System.out.println("获取了first锁");
synchronized (second) {
try {
Thread.sleep(1000L);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("获取了second锁");
}
}
}
方法二,将对应的方法做出异常声明
public static void main(String[] args) throws InterruptedException {
......
}