int a = 0;
int b = 10;
System.out.println(b/a);
String a = null;
a.charAt(3);
Object o = new Integer(1);
String s = (String)o;
System.out.println(s);
String[] s = new String[2];
System.out.println(s[5]);
try{
int a = 0;
int b = 10;
int c = b/a;
System.out.println("执行成功");
}catch(Exception e){
System.out.println("出现异常");
}
System.out.println("------");
代码举例:
//出现异常就转入catch
try{
throw new Exception();
}catch(Exception e){
System.out.println("xxxx");
}
附上代码:
String st = "2019年12-01";
SimpleDateFormat d = new SimpleDateFormat("yyyy-MM-dd");
try{
Date dt = d.parse(st); //解析异常
String s = null;//空指针异常
s.charAt(1);
int a = 0;
int b = 10;
int c = b/a;//算术异常
}catch(ParseException e){
System.out.println("解析异常");
}catch(NullPointerException e1){
System.out.println("空指针异常");
}catch(ArithmeticException e2){
System.out.println("算术异常");
}finally{
System.out.println("无论如何都会执行");
}
Cat类:
public class Cat {
public void MiaoWu() throws ParseException{
Dog a = new Dog();
a.bit();
}
}
Dog类:
public class Dog {
public void bit() throws ParseException{
String st = "从那个坏人身上撕了一块肉";
SimpleDateFormat d = new SimpleDateFormat("yyyy-MM-dd");
Date dt = d.parse(st);
System.out.println("汪汪汪");
}
}
ThrowsTest测试类:
public static void main(String[] args) throws ParseException {
// TODO Auto-generated method stub
Dog d = new Dog();
d.bit();
}
由于在主方法也进行了抛出,故出现了以下错误。
由于在主方法也进行了抛出,故出现了以下错误。
如果此时改成try{}catch处理异常会如何呢?下面我们来验证
public static void main(String[] args){
// TODO Auto-generated method stub
try{
Dog d = new Dog();
d.bit();
}catch(ParseException e){
System.out.println("出现解析异常");
}
}
出现解析异常
3.2自定义异常自定义一个异常:
public class LuckyException extends Exception{
}
Hello类:
public class Hello {
public void hi() throws LuckyException{
// TODO Auto-generated method stub
if(Math.random()<0.1) //百分之九十是异常的,百分之十输出Hello World!
System.out.println("Hello World!");
else
throw new LuckyException();
}
}
Test测试类:
public static void main(String[] args) throws LuckyException {
Hello h = new Hello();
h.hi();
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) | 黑马程序员IT技术论坛 X3.2 |