【济南校区】java基础-常见异常和自定义异常
我们常见的异常分类有编译时异常和运行时异常
1.1 编译时异常&运行时异常A: 编译时期异常:是Exception的子类,非RuntimeExcpetion的子类,在编译时期必须处理 B:RuntimeException和他的所有子类异常,都属于运行时期异常。NullPointerException,ArrayIndexOutOfBoundsException等都属于运行时期异常. 运行时期异常的特点: 方法中抛出运行时期异常,方法定义中无需throws声明,调用者也无需处理此异常 运行时期异常一旦发生,需要程序人员修改源代码. 1.1.1 案例代码八:[Java] 纯文本查看 复制代码 package com.itheima_01;
import java.io.FileWriter;
import java.io.IOException;
/*
* 异常的分类:
运行时期异常:RuntimeException的子类就是运行时期异常,在编译时期可以自由选择处理或者不处理
编译时期异常:是Exception的子类,非RuntimeExcpetion的子类,在编译时期必须处理
*/
public class ExceptionDemo6 {
public static void main(String[] args) {
//System.out.println(2 / 0);
//String s = null;
//System.out.println(s.length());
try {
FileWriter fw = new FileWriter("a.txt");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
} 1.2 自定义异常需求:写一个方法,接受考试成绩,如果考试成绩的范围在0-100之间则属于正常,否则属于异常 1.2.1 案例代码九: 当成绩不在0~100范围内,抛出一个运行时异常或者编译时异常,阻止程序继续向下执行 [Java] 纯文本查看 复制代码 package com.itheima_01;[/align]
/*
* 需求:写一个方法,接受考试成绩,如果考试成绩的范围在0-100之间则属于正常,否则属于异常
*
* throws:处理异常的一种方式,把异常抛出,由调用者来处理
* throw:制造异常的方式,并且结束方法
*
* 注意:如果抛出(throw)的是编译时期异常,必须在方法声明处抛出(throws)
*
* 如何自定义一个异常类呢?
* 非常简单,写一个类去继承Exception或者RuntimeException,然后实现多个构造即可
*
* */
public class ExceptionDemo7 {
public static void main(String[] args) {
/*boolean flag = checkScore(-10);
System.out.println(flag);*/
try {
checkScore(110);
} catch (Exception e) {
//System.out.println(e.getMessage());
e.printStackTrace();
}
//checkScore(110);
}
/* public static boolean checkScore(int score) {
//判断考试成绩是否符合范围,如果不符合则返回false
if(score < 0 || score > 100) {
return false;
}
//符合
return true;
}*/
public static void checkScore(int score) throws Exception {
if(score < 0 || score > 100) {
throw new RuntimeException("考试成绩不符合要求");
//throw new Exception("考试成绩不符合要求");
}
System.out.println("考试成绩符合要求");
}
} 1.2.2 案例代码十: 我们也可以自定义一个编译时异常或者运行时异常来抛出: [Java] 纯文本查看 复制代码 package com.itheima_01;[/align]
public class MyException extends /*RuntimeException*/ Exception{
public MyException() {
super();
// TODO Auto-generated constructor stub
}
public MyException(String message) {
super(message);
// TODO Auto-generated constructor stub
}
/*public MyException() {
super();
}
public MyException(String s) {
super(s);
}*/
} [Java] 纯文本查看 复制代码 package com.itheima_01;
/*
* 需求:写一个方法,接受考试成绩,如果考试成绩的范围在0-100之间则属于正常,否则属于异常
*
* throws:处理异常的一种方式,把异常抛出,由调用者来处理
* throw:制造异常的方式,并且结束方法
*
* 注意:如果抛出(throw)的是编译时期异常,必须在方法声明处抛出(throws)
*
* 如何自定义一个异常类呢?
* 非常简单,写一个类去继承Exception或者RuntimeException,然后实现多个构造即可
*
* */
public class ExceptionDemo7 {
public static void main(String[] args) {
/*boolean flag = checkScore(-10);
System.out.println(flag);*/
try {
checkScore(110);
} catch (Exception e) {
//System.out.println(e.getMessage());
e.printStackTrace();
}
//checkScore(110);
}
public static void checkScore(int score) throws Exception {
if(score < 0 || score > 100) {
throw new MyException("考试成绩不符合要求");
}
System.out.println("考试成绩符合要求");
}
}
如果你想了解更多黑马课程,如果你想加入黑马这个大家庭学习先进技术,光交天下好友,那就快来吧!
黑马程序员济南中心联系电话:0531-55696830
|