1.NumberFormatException异常,编写过程没有显示错误,是被RuntimeException异常处理了
public class Gty {
public static void main(String[] args) {
int a=Integer.parseInt("123e");
}
}
2.产生异常,后面的语句不执行
public class Gty {
public static void main(String[] args) {
System.out.println("开始");
int a=Integer.parseInt("123e");
int b=Integer.parseInt("o"); //Exception (异常)
System.out.println("2. 除法计算:"+(a/b)); //产生异常,后面的语句不执行
System.out.println("结束");
}
}
运行结果:
3.1 try....catch处理异常 : “捕获异常”,顺序执行
public class Gty {
public static void main(String[] args) {
System.out.println("计算开始");
try {
System.out.println("运算进行中:"+10/0);
} catch (Exception e) {
System.out.println("捕获异常"); //打印输出语句异常时,按顺序显示
}finally {
System.out.println("一定会执行的代码"); //finally{}代码一定执行
}
System.out.println("结束");
}
}
运行结果:
3.2 try....catch处理异常 :系统自带printStackTrace()方法处理异常,多线程的原理
public class Gty {
public static void main(String[] args) {
System.out.println("计算开始");
try {
System.out.println("运算进行中:"+10/0);
} catch (Exception e) {
e.printStackTrace(); //系统提供的,显示位置不定(多线程原理);
}finally {
System.out.println("一定会执行的代码"); //finally{}代码一定执行
}
System.out.println("结束");
}
}
运行结果(一):
运行结果(二):
4.多线程的启动方式
public class Gty {
public static void main(String[] args) {
System.out.println("开始");
new Thread(new Runnable() { //匿名方法及匿名内容类
@Override
public void run() {
// TODO Auto-generated method stub
try {
Thread.sleep(5000); //休眠5秒,继续执行
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println("进行中");
}
}).start();