o(╯□╰)o
package testDemo;
public class test1 {
public static void main(String[] args) {
int a=10;
int b=0;
try{
System.out.println(a/0);
}catch(ArithmeticException e){
e.printStackTrace();
}
}
}
package testDemo;
public class test1 {
public static void main(String[] args) {
int a=10;
int b=0;
try{
System.out.println(a/0);
}catch(ArithmeticException e){
e.printStackTrace();
}finally {
System.out.println("有异常!");
}
}
}
package testDemo;
class test{
int a=10;
int b=0;
public void show() throws ArithmeticException{
System.out.println(a/b);
}
}
public class test1 {
public static void main(String[] args) {
try {
new test().show();
} catch (ArithmeticException e) {
e.printStackTrace();
}
}
}
package testDemo;
class test{
int a=10;
int b=0;
public void show() throws ArithmeticException{
if(b==0){
throw new ArithmeticException();
}else{
System.out.println(a/b);
}
}
}
public class test1 {
public static void main(String[] args) {
try {
new test().show();
} catch (ArithmeticException e) {
e.printStackTrace();
}
}
}
final: 最终的意思,可以修饰类,成员变量,成员方法
修饰类,类不能被继承
修饰变量,变量是常量
修饰方法,方法不能被重写
finally: 异常处理的一部分,用于释放资源
一般来说,代码肯定会执行,特殊情况:执行finally之前jvm退出。
finalize:Object类的一个方法,用于垃圾回收
会,是在return之前。 但更准确的说是在中间。
package testDemo;
public class test1 {
public static void main(String[] args) {
System.out.println(getInt());
}
public static int getInt() {
int a = 10;
try {
System.out.println(a / 0);
a = 20;
} catch (ArithmeticException e) {
a = 30;
return a;
} finally {
a = 40;
}
return a;
}
}
结果是输出30,运行调试便知。
仍然会,与在catch中类似。(如果try中没有异常发生,就不会走catch)
package testDemo;
public class test1 {
public static void main(String[] args) {
System.out.println(getInt());
}
public static int getInt() {
int a = 10;
try {
a = 20;
return a;
} catch (ArithmeticException e) {
a = 30;
return a;
} finally {
a = 40;
}
}
}
结果输出20。
A:try...catch...finally
B:try...catch
C:try...catch...catch...
D:try...catch...catch...finally
E:try...finally
有时候java中的异常处理不能满足需求,需要自己自定义异常
public class MyException extends Exception {//必须继承Exception/RuntimeException
public MyException() {
}
public MyException(String message) {
super(message);//调用父类构造方法即可
}
}
欢迎与我分享你的看法。 转载请注明出处:http://taowusheng.cn/ 微博:寒枫–0-0– 知乎:https://www.zhihu.com/people/tao-wu-sheng 豆瓣:YIFEI