一.异常概要
异常是指在程序执行过程中发生的错误,是指在程序执行过程中发生的时间,它会中断正在执行的程序的正常指令流。
例如,执行以下代码时,程序执行报告会出现算术异常,系统将无法运行,并提前结束。 据说这种状况不正常。
int result=3/0;
system.out.println(result );
image.png
异常处理机制使您可以将非正常情况下的处理代码与程序的主逻辑分离,即在编写代码的主流程的同时,在其他位置处理异常。
二、处理程序异常错误
在java中,如果某个方法抛出异常,则可以在当前方法中捕获并处理该异常,也可以向上抛出异常并由方法调用方处理。
2.1错误
发生异常后,如果什么都不做,程序就会结束。
以下代码将输出异常代码之前的内容,但不输出异常代码之后的内容。
int age=18;
system.out.println(age;
int result=3/0;
system.out.println(result );
image.png
2.2捕捉异常
Java语言的异常捕获结构由三个部分组成: try、catch和finally3。
1.try------可能发生异常的Java语句
2.catch------用于诱发捕捉到的异常
3.finally-- -即使try语句的代码结束,也会执行finally语句块。
try{
//程序代码块
}
catch(exceptiontype1e ) {
支持Exceptiontype1
}
catch(exceptiontype2e ) {
支持扩展类型2
}
……
法利{
//程序块
}
补充: exception----try代码块传递给catch代码块的变量类型e是变量名
*getmessage----输出错误的性质
* toString (函数---------给出异常的类型和性质
*打印堆栈跟踪----- -表示异常的类型、性质、堆栈层次以及在程序中出现的位置
2.2.1 try-catch语句块(eclipse的快捷键为alt shift z ) )。
如果try码块中的语句发生异常,则程序被转发到catch码块并执行,在执行catch码块中的程序代码后,不执行try码块中发生异常的语句之后的代码,catch码
try {
system.out.println(Hello,word );
int b=20/0;
system.out.println(nnnnnn );
}catch(exceptione ) {//catch语句块用于获取异常信息
e .打印任务跟踪(; //printstacktrace-------表示异常的类型、性质、堆栈层次以及在程序中出现的位置
}
image.png
2.2.2文件语句块
无论程序中是否存在异常,也不管以前的try-catch是否成功执行,都会执行finally语句。
try {
system.out.println(Hello );
}
catch(exceptione ) (
e .打印任务跟踪(;
}
法利{
system.out.println(word );
}
image.png
在以下四种特殊情况下,不执行finally块:
finally语句块中发生异常
2 .在前面的代码中使用System.exit ()退出了程序
3 .有程序的线路死亡
4 .关闭处理器。
2.3 java常见异常
1.ClassCastException型转换异常
2.ClassNotFoundException找不到相应类的异常
3.ArithmeticException算术异常
4.arrayindexoutofboundsexception数组下标越界
5.SQLException操作数据库异常类
6.IOException输入输出异常
7 .在文件not found exception文件中找不到异常
8.IllegalAccessException不允许访问某个异常
9 .空指针异常
2.4方法抛出异常
2.4.1使用throws关键字抛出异常
throws关键字通常用于指定声明方法时方法可能抛出的异常。 可以用逗号分隔多个异常。 将代码中可能出现的问题交给别人(方法),并与方法连用。
静态公共语音方法() throws ArithmeticException{
System.out.println ('我在睡觉); 定义//方法并抛出ArithmeticException异常
int a=22/0;
}
publicstaticvoidmain (string [ ] args ) {
try {
method (; 调用//方法,判断方法是否有异常
}catch(arithmeticexceptione ) )
System.out.println (算术异常);
}
image.png
2.4.2使用throw关键字抛出异常
throw关键字通常用于方法主体,并抛出异常对象。 程序执行到throw语句时立即停止,不执行后续语句。
如果在throw中抛出异常,然后在更高级代码中捕获和处理异常,则必须在抛出异常的方法中使用throws关键字在方法的声明中指定抛出的异常。
要捕获throw抛出的异常,必须使用try-catch语句块。
staticvoidmethod1(intcount ) {
if(count0) {
throw new ArithmeticException ('人数不能为负);
}
else {
System.out.println ('人数为' count );
}
}
try {
方法1 (-100;
}catch(exceptione ) {
system.out.print ln (e.getmessage );
}
publicstaticvoidmain (string [ ] args ) {
try {
方法1 (-100;
}catch(exceptione ) {
system.out.print ln (e.getmessage ); //人数不能为负
}
}
总结
*1.托架文件:用于处理代码块中的异常。
* 2.throws:用于处理方法异常。
* 3.throw用于方法论。