啥也不多说,直接上代码
public class ExceptionTest01 {
public void runtimeExceptionNotUseTryCatch(){
String str = null;
m1(str);
System.out.println(“over”);
}
private void m1(String str) {
if(str==null){
System.out.println(“空指针异常”);
}
// TODO Auto-generated method stub
else{
int i = str.indexOf(“11”);
}
}
}
try语句块无异常所以不会执行catch语句块,最后的返回值由finally语句块决定
import java.io.File;
import java.io.IOException;
public class Main{
public static void main(String[] args) throws IOException{
createfile();
}
private static void createfile() throws IOException {
File file = new File("d:/a.txt");
if(!file.exists()){
file.createNewFile();
}
}
}
如果在这个方法里无法处理掉这个异常就通过throws向上一层抛,由调用该方法者接到处理
运行时异常是RuntimeException类及其子类的异常,是非受检异常,如NullPointerException、IndexOutOfBoundsException等。由于这类异常要么是系统异常,无法处理,如网络问题;
要么是程序逻辑错误,如空指针异常;JVM必须停止运行以改正这种错误,所以运行时异常可以不进行处理(捕获或向上抛出,当然也可以处理),而由JVM自行处理。Java Runtime会自动catch到程序throw的RuntimeException,然后停止线程,打印异常
import java.util.Scanner;
import javax.print.DocFlavor.STRING;
public class TestExceptionEmployeer {
public static void main(String[] args) {
/**
*3、参考以下代码,设计对象,用户输入不同内容或者通过构造方法设计,使得程序分别抛出空异常、身份证异常、工资低异常、工资高异常、年龄底异常、
*年龄高异常,并给出相应提示。
*
*/
System.out.println("请输入你的编号:");
Scanner id = new Scanner(System.in);
int i = id.nextInt();
System.out.println("请输入你的 姓名:");
Scanner name = new Scanner(System.in);
String n = name.next();
System.out.println("请输入你的 年龄:");
Scanner age = new Scanner(System.in);
int ag = age.nextInt();
System.out.println("请输入你的工资:");
Scanner in = new Scanner(System.in);
int a = in.nextInt();
System.out.println("请输入你的 身份证号:");
Scanner idCard = new Scanner(System.in);
String ic = idCard.next();
System.out.println("你输入的编号是:"+i);
System.out.println("你输入的姓名是:"+n);
System.out.println("你输入的年龄是:"+ag+"岁");
System.out.println("你输入的工资是:"+a+"¥");
System.out.println("你输入的身份证号是:"+ic);
try {
Employee employee=new Employee(i,ag,n);
} catch (LowSalaryException e) {
System.out.println(e.getS());
e.printStackTrace();
} catch (HightSalaryException e) {
System.out.println(e.getS());
e.printStackTrace();
}catch (NullException e) {
System.out.println(e.getS());
e.printStackTrace();
}
catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
Employee employee=new Employee(a, ic);
} catch (LowAgeException e) {
System.out.println(e.getS());
e.printStackTrace();
} catch (HightAgeException e) {
System.out.println(e.getS());
e.printStackTrace();
}catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
/*
try {
Employee employee=new Employee(a, “123456”);
} catch (NullException e) {
System.out.println(e.getS());
e.printStackTrace();
}catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
Employee employee=new Employee(a, "123456");
} catch (NullException e) {
System.out.println(e.getS());
e.printStackTrace();
}catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
*/
}
}