1.异常处理
代码的路径如下如所示:
代码如下:
1.1捕获异常: try…catch / 多重catch / try…catch…finally
package com.yzh7.test5;
import java.util.InputMismatchException;
import java.util.Scanner;
/**
* @author: hy
* @create: 2022-07-05 11:03:51
*/
public class Test {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
try {
System.out.println("请输入第一个数:");
int num1 = scanner.nextInt();
System.out.println("请输入第二个数:");
int num2 = scanner.nextInt();
//计算结果
int res = num1 / num2;
System.out.println("结果:" + res);
System.out.println("定义数组长度为2...");
return;
//int[] nums = new int[2];
//nums[2]=res; //触发下标越界异常
}
catch (ArithmeticException ex){
System.out.println("发生数学运算异常了......");
//通过异常对象,打印异常堆栈
ex.printStackTrace();
//输出异常信息
System.out.println("异常信息:"+ex.getMessage());
}catch (InputMismatchException ex){
System.out.println("发生输入不匹配了异常....");
ex.printStackTrace();
System.out.println("异常信息:"+ex.getMessage());
}catch (Exception ex){ //粗粒度的异常,前面捕获不到的异常,都可以由exception捕获
//Exception:可以捕获所有代码异常,但是粒度比较粗,无法体现具体的异常类型
System.out.println("发生了错误....");
ex.printStackTrace();
System.out.println("异常信息:"+ex.getMessage());
}finally {
System.out.println("这是finally代码,无论是否出错,这个代码都要执行");
}
//粗粒度的异常要放在最后
System.out.println("========程序结束========");
}
}
1.2手动抛出异常:throws
package com.yzh7.test5;
/**
* @author: hy
* @create: 2022-07-05 11:47:14
*/
public class Test2 {
//throws Exception:在方法上定义异常抛出声明,表示该方法可能会出错。
// 对于方法的调用者必须要进行异常处理
public static void m1() throws Exception{
}
public static void m2() throws Exception{
System.out.println("这是m2方法");
m1();
//方式1:自己进行try catch处理
//方式2: 在方法上添加异常抛出声明
// try {
// m1();
// }catch (Exception ex){
// System.out.println("调用m1方法出错了");
// }
}
public static void main(String[] args) throws Exception {
m2();
}
}
1.3自定义异常 **设置年龄异常类(继承Exception)
package com.yzh7.test5;
/**
* 自定义年龄异常类
* @author: hy
* @create: 2022-07-05 12:00:47
*/
public class AgeException extends Exception{
public AgeException(String message) {
super(message);
}
}
1.4手动抛出异常:throw
package com.yzh7.test5;
/**
* @author: hy
* @create: 2022-07-05 11:54:10
*/
public class Student {
private String name;
private int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
//手动抛出异常,在方法上添加抛出声明,对应方法的调用者要做异常处理
public void setAge(int age) throws AgeException {
if(age<0|| age>100){
//手动抛出异常
//throw new Exception("年龄不是有效值");
throw new AgeException("年龄不是有效值");
}else {
this.age = age;
}
}
@Override
public String toString() {
return "Student{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
}
1.5捕获异常: try…catch
package com.yzh7.test5;
/**
* @author: hy
* @create: 2022-07-05 11:57:11
*/
public class Test3 {
public static void main(String[] args) {
try {
Student student = new Student();
student.setName("张三");
student.setAge(-18);
System.out.println(student);
}catch (AgeException ex){
System.out.println("年龄设置出错....");
}catch (Exception ex){
System.out.println("出错了:"+ex.getMessage());
}
//try..catch..finally throw throws
}
}
一、table表格 背景
图片、代码的路径如下如所示:
代码如下:
// An highlighted block
var foo = 'bar';
运行结果如下:
#pic_center
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/118130.html