Ваши две проблемы заключаются в том, что у вас есть несколько вызовов Math.random и несколько if, которые соответствуют одному условию.
Вам необходимо получить 1 число из Math.random () и использовать его, например:
double rand = Math.random();
Затем вам нужно будет переключить перекрывающиеся ifs на else ifs, так как, если бы rand был равен 0.1, он бы подходил всем 3, если условия.
Таким образом, в конце method1 должен выглядеть примерно такэто:
public void method1() throws Exception1, Exception2 {
try {
double rand = Math.random();
System.out.println(rand+"\n");
System.out.println("m1_1");
//some code here that will randomly throw Exception1,2,or3
if (rand <= 0.3) {
throw new Exception1();
}
else if (rand < 0.6) {
throw new Exception2();
}
else if (rand < 0.9) {
throw new Exception3();
}
System.out.println("m1_2");
} catch (Exception3 e3) {
System.out.println("m1_3");
}
System.out.println("m1_4");
}