異常な
大まかに言えば:すべての異常
エラー:プログラムは実行中ですが、プログラムで処理できません。たとえば、仮想マシンのメモリが不足しています。
狭い例外:プログラムの実行中に発生するエラー
例外処理メカニズムの後、プログラムは引き続き実行できます。
public class day1 {
public static void main(String[] args) {
/*
1.数组索引越界 java.lang.ArrayIndexOutOfBoundsException
*/
/*int [] a = new int[2];
a[2]=5 ;*/
/*
2.空指针异常 java.lang.NullPointerException
*/
/*String S=null;
System.out.println(S.length());*/
/*
3.类型转换异常java.lang.ClassCastException
*/
/*Object obj = "abc";
Integer in = (Integer) obj;*/
/*
4.数字格式化异常 java.lang.NumberFormatException
*/
/*new Integer("abc");*/
/*
5.算数异常
java.lang.ArithmeticException / by zero
*/
//int x=10/0;
//异常处理机制,有的异常不强制处理,有的需要强制处理
try{
String s = "utf-8";
byte [] b = "abc".getBytes(s);
}catch (UnsupportedEncodingException s){
System.out.println("编译错误");
}
System.out.println("代码");
}
異常なシステム
Trowable
エラー:エラー、学習しないでください
例外:例外、学習の焦点
実行時の例外:
直接的または間接的にRuntimeExceptionを継承します
コンパイル中に処理を強制しないでください
コンパイル時の例外:
直接的または間接的にExceptionを継承し、RuntimeExceptionとは何の関係もありません
コンパイル中の必須処理、それ以外の場合はコンパイルなし
例外処理
package com.ff.javaexception;
public class Demo2 {
public static void main(String[] args) {
/* try{
可能异常的代码;
}catch (异常类型(只捕获指定类型的异常)){
处理异常的代码;
}*/
try {
String s1=null;
s1.length();
/* try {
String[] s = new String[]{"1", "2", "3"};
s[3] = "3";
}catch (ArrayIndexOutOfBoundsException s){
System.out.println("溢出异常");
}*/
String[] s = new String[]{
"1", "2", "3"};
s[3] = "3";
int x=10;
int y =0;
int t = x/y;
System.out.println("可能异常后面的代码");
}catch (ArithmeticException s){
System.out.println("算数异常");
}catch (ArrayIndexOutOfBoundsException s){
System.out.println("溢出异常");
}catch (Exception e){
System.out.println("有异常,不知道啥异常");
}
System.out.println("后面的代码");
}
}