Spark-Java Day16异常,包装

2021/11/20 17:11:53

本文主要是介绍Spark-Java Day16异常,包装,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

1 JavaSE异常
程序在执行过程中出现了非正常情况,使得JVM非正常运行。
2 异常处理方式:
(1) 遇到错误就终止程序的运行
(2) 编写代码处理
3 Java异常体系结构
a Throwable 顶层异常类
b Throwable 两个子类
Error 编译时出现
Exception 运行时出现
c 两个常用方法
getMessage() 得到异常基本内容
printStackTrace() 得到异常详细信息
4 常见异常
(1) 栈溢出异常 StackOverflowError

public void testDigui(){
	digui();
}

public void digui(){
	digui();
}

(2) 数组越界异常ArrayIndexOutOfBoundsException

int[] arrs = {1, 2, 3};
arrs[4] = 5;

(3) 空指针异常NullPointerException

Student s = null;
s.getName();

(4) 类型转换异常ClassCastException

Object obj = new Object();
String str = (String) obj;

(5) 类型不匹配异常InputMismatchException

Scanner input = new Scanner(System.in);
    System.out.print("请输入一个整数:");
    int num = input.nextInt();

(6) 数学操作异常ArithmeticException

double k = 1/0;

5 运行时异常可以不处理,编译时异常必须处理
6 java异常抛出机制

(1)当前方法如果处理异常,后面调用者直接使用了,如果当前方法不处理异常,由调用者处理
7 异常处理-throw抛出异常
语法: throw new 异常类名称(“参数”);
throw new NullPointerException(“数组为空”);
异常处理-throws声明异常
如果方法出现异常,可以在方法里面进行处理;如果方法里面不进行处理,异常声明出来,由调用者处理
异常处理-try{}catch(){}…catch(){}…捕获异常
异常处理-finally块总被执行,一般在finally中放的是关闭资源的代码
try{}finally{} 或 try{}catch(){}finally{}
8 自定义异常
8.1 异常类如何定义
自定义一个编译期异常: 自定义类 并继承于`java.lang.Exception

自定义一个运行时的异常类:自定义类 并继承于`java.lang.RuntimeException

class RegisterException extends Exception{
}
class RegisterException extends RuntimeException{
}

9 字符串
(1)字符串不是基本数据类型,使用双引号"abcd"
(2)String被final继承,不能被改变与继承;
(3)
String s = “abc”;
String s = new String(“abc”);
char[] a = {‘a’,‘b’,‘c’}
String s = new String(a);
10 JVM结构
栈 堆 方法区
JDK1.6之前: 常量池放到方法区
JDK1.7: 常量池放到堆
JDK1.8: 常量池放到元空间(没有方法区)

如果使用String s = "ww"创建对象
在方法区创建对象abc
在栈指向方法区对象

如果使用String s = new String(“ww”)创建对象
首先在方法区创建对象ww
其次在堆创建方法副本ww
方法区对象和堆对象指向同一个数组
栈中指向堆中对象(引用)

==比较的地址,equals()比较的是对象内容,String重写了equals()方法,比较的是String内容



这篇关于Spark-Java Day16异常,包装的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程