异常的捕获和处理

1、什么是异常?如何捕获异常?
异常:描述出出错信息得而对象
普货异常用try{}catch(){}

2、异常的类结构是怎样的?错误和异常各自有什么特点?
异常的api结构throw有两个子类:error(错误),exception(异常)
try cath
error是错误的父类,错误可以捕获,但不能处理,一般反生崩溃机的情况
excption是所有异常的父类,异常可以捕获也可以处理。

3、异常执行的顺序是怎样的?
先执行try块中的内容,顺序执行,如果try块中有异常发生,那么转去catch块执行,同时终止try块的
其他代码。无论是否有异常,都会执行finally语句块重的代码。如果try或catch块中有system.exit(0);则
finally不会执行。

4、throw和throws 的区别是什么?
throw是语句表示显示抛出异常。throw new exception
throws反法修饰符,表示该方法可能会抛出某种异常,那么如果调用该方法,就必须处理该方法抛出的异常

5、异常有几种?如何区分?
编译期异常;要求开发者必须处理,如果不处理则编译错误;
运行期异常:开发者可出里可不处理,如果不处理也可通过编译。
所有的运行期异常,都是Runtime Exception。

6、finally一般在什么时候使用?是不是任何时候都会执行finally块?
finally一般用于流的关闭,数据库的关闭等资源回收。
无论是否有异常,都会执行finally语句块重的代码。如果try或catch块中有system.exit(0);则
finally不会执行。

7、String s = "abc"
String s = new String("abc")有什么区别?画出内存图。
String s = "abc";s变量指向的数据段中的字符串对象。
String s = new String("abc")s变量指向的是堆中的字符串对象,在堆中创建字符串对象,会已数据段
中的字符串作为模板,复制到堆中的字符串对象中。

8、String有什么特点?
当对字符串做添加,删除,替换的不会改变String对象的内容,而是产生新的字符串对象。

9、"[3200-3500]"这样一个正则表达式。"3300"匹配吗?为什么?
不匹配,只能表示一个字符。0-5数字才行

10、说出以下代码执行结果 空指针异常 finally代码 异常外代码
try{
JFrame j = null;
j.setSize(400,300);
}
catch(NullPointerException e){
System.out.println("空指针异常");
}
catch(Exception e){
System.out.println("发生异常");
}
finally{
System.out.println("finally代码");
}

System.out.println("异常外代码");

11、说出以下代码执行结果 23 134
public class FinallyTest {
private static String str = "";

public static void foo(int x){
try{
if(x == 0){
int y = 9/0;
}
str += "1";

}catch(Exception e){
str += "2";
return;
}
finally{
str += "3";
}
str += "4";
}
public static void main(String[] args) {
foo(0);
foo(1);
System.out.println(str);
}
}

12、说出以下代码执行的结果 出现异常 finally

public class Test {

public static void main(String[] args) {
int[] strs = {1,2,3,5,7};
int sum = 0;
try{
for(int i = 0 ;i<=5;i++){
sum += strs[i];
}
System.out.println(sum);
}catch(Exception e){
System.out.println("出现异常");
}
finally{
System.out.println("finally");
}
}
}

13、说出以下代码执行结果
String a = "abc";
String b = "abc";
String c = new String("abc");
String d = new String("abc");

System.out.println(a == b); true
System.out.println(c == b);false
System.out.println(c == d);false

System.out.println(a.equals(b));true
System.out.println(a.equals(d));true
System.out.println(b.equals(c));true
14、说出以下代码执行结果abcd abcd***
public static void main(String[] args) {
String s = "abcd";
StringBuffer sb = new StringBuffer("abcd");
test(s,sb);
System.out.println(s+" "+sb);
}

public static void test(String s,StringBuffer sb){
s = s + "&&&";
sb.append("***");
}
}

时间: 2024-08-01 20:02:28

异常的捕获和处理的相关文章

第十九节(异常的基本概念, 异常的分类, 异常的捕获和处理,自定义异常,方法覆盖与异常)

1: Java 异常处理 异常是程序中的一些错误,但并不是所有的错误都是异常,并且错误有时候是可以避免的. 异常发生的原因有很多,通常包含以下几大类: 1. 用户输入了非法数据. 2. 要打开的文件不存在. 网络通信时连接中断,或者JVM内存溢出.这些异常有的是因为用户错误引起,有的是程序错误引起的,还有其它一些是因为物理错误引起的. 要理解Java异常处理是如何工作的,要掌握以下三种类型的异常: 检查性异常:最具代表的检查性异常是用户错误或问题引起的异常,这是程序员无法预见的.例如要打开一个不

JAVA学习-异常的捕获及处理

1.认识异常(了解) 异常指的是导致程序中断的一种指令流.那么下面先通过两个程序来比较程序出现异常与没有出现异常的区别. 范例:程序不出现异常 public class TestDemo { public static void main(String args[]) { System.out.println("1.除法计算开始.") ; System.out.println("2.除法计算:" + (10 / 2)) ; System.out.println(&q

Java中异常的捕获顺序(多个catch)(

Java代码 import java.io.IOException; public class ExceptionTryCatchTest { public void doSomething() throws IOException{ System.out.println("do somthing"); } public static void main(String[] args){ ExceptionTryCatchTest et = new ExceptionTryCatchTe

Java入门——异常的捕获与处理

Java入门——异常的捕获与处理 在没有异常处理的语言中,通常需要大量的判断语句,配合所想到的错误来捕获程序中所有可能发生的错误.充分利用Java的异常处理机制,以增进程序的稳定性和效率. Java的异常处理机制 一旦产生异常,则首先会产生一个异常类的实例化对象. 在try语句中对此异常对象进行捕获. 产生的异常对象与catch语句中的各个异常类型进行匹配,如果匹配成功,则执行catch语句中的代码. finaly是异常的统一出口,一定会执行. 所有的子类实例全部可由父类接收,利用向上转型的概念

[转载]Java中异常的捕获顺序(多个catch)

http://blog.sina.com.cn/s/blog_6b022bc60101cdbv.html [转载]Java中异常的捕获顺序(多个catch) (2012-11-05 09:47:28) 转载▼ 标签: 转载 分类: 转载 原文地址:Java中异常的捕获顺序(多个catch)作者:leesa Java代码 import java.io.IOException; public class ExceptionTryCatchTest { public void doSomething(

java之异常的捕获及处理

在java中程序的错误主要是语法错误和语义错误(也就是逻辑错误). java中异常处理语句的格式: try{ //有可能出现异常的语句 }catch(异常类 异常对象){ //编写异常的处理语句 }catch(异常类 异常对象){ //编写异常的处理语句 }finally{ 一定会运行的代码: } 在java的异常结构中,有两个最常用的类,分别是Exception和Error,都是Throwable的子类. Exception:一般表示的是程序中出现的问题,可以直接使用try....catch处

异常课——捕获

//异常课件——捕获 package class10923; public class yichang1ke { public static void main(String[] args) { // //算术异常 // int i=10/0; //抓住异常 //看是否有异常,如果有异常执行catch,没有异常正常执行try内容 try { //空指针异常 //对象没有被实例化就去调用对象的实例方法 String str=null; str.trim();//空指针异常位置 } //捕获 cat

Java中多个异常的捕获顺序(多个catch)

Java代码 import java.io.IOException; public class ExceptionTryCatchTest { public void doSomething() throws IOException{ System.out.println("do somthing"); } public static void main(String[] args){ ExceptionTryCatchTest etct = new ExceptionTryCatch

Java异常的捕获和处理(一)

一.异常的捕获和处理 KEY WORDS : try, catch, finally, throw, throws. (一)syntax(代码) try{ //需要运行的代码 }catch(异常类型 异常变量名){ //异常处理代码 }finally{ //异常发生,方法返回之前,需要执行的代码 } (二)不同语句块的特点 1.try (1)表示尝试运行代码,受异常监控. (2)当此语句块代码发生异常时,抛出异常对象.//不太明白此处的抛出对象是什么意思? 2.catch (1)当try语句块中