Java基础——try-catch-finally语句

问:Java异常处理机制,理解了吗?Java异常处理,真的掌握了吗?什么是自定义异常?catch体里遇到return 是怎么处理?finally 体里有return怎么处理?catch 和 finally 体里同时遇上 return 怎么办?几道例题,理清它们。

一、try catch语句

格式:(代码区如果有错误,就会返回到异常处理)

1 try{
2
3 //代码区
4
5 }catch(Exception e){
6
7 //异常处理
8
9 }

首先要清楚,异常有运行时异常和check异常:

运行异常不需要强制捕获,他们是RuntimeException的子类。check异常需要try、catch的异常处理。

可以调用API去查询一下,比如常见的RuntimException有IndexOUtOfBoundsException(索引过界)、NullpointerException(空指针异常)等。常见的check异常有IO异常、SQL异常、FileNotFoundException(日期转换异常)等。

严重的话,如果某个高频率访问的类没有try,出现异常会导致程序崩溃。而try则可以保证程序的正常运行下去,比如说:

1 try{
2 int i = 1/0;
3 }catch(Exception e){
4 .....
5 }

小到一个计算,如果除数为0,则会报错,如果没有try的话,程序直接挂掉。用try的话,则可以让程序运行下去,并且输出为什么出错!

try catch
是捕捉try部分的异常,当你没有try catch的时候,如果出现异常则程序报错,加上try catch,出现异常程序正常运行,只是把错误信息存储到Exception里,所以catch是用来提取异常信息的,你可以在Catch部分加上一句System.out.println(e.ToString());,如果出现异常可以把异常打印出来。

代码实例:

 1 public class TestEx1 {
 2     public int add(int a, int b) {
 3         return a + b;
 4     }
 5
 6     public int dev(int a, int b) {
 7         int c = a / b;// 这里有隐患
 8         return c;
 9     }
10
11     public static void main(String[] args) {
12         TestEx1 c = new TestEx1();
13         int result = c.add(4, 9);
14         System.out.println("求和的结果是" + result);
15         try { // 防患于未然
16             int result_chu = c.dev(90, 0);
17             System.out.println("除的结果是" + result_chu);
18         } catch (Exception e) {
19             System.out.println("出错啦~");
20
21         }
22     }
23 }
时间: 2024-10-13 08:20:42

Java基础——try-catch-finally语句的相关文章

【转】case: Java中try catch finally语句中含有return语句的执行情况(总结版)

Java中try catch finally语句中含有return语句的执行情况(总结版) 有一点可以肯定,finally块中的内容会先于try中的return语句执行,如果finall语句块中也有return语句的话,那么直接从finally中返回了,这也是不建议在finally中return的原因.下面来看这几种情况. 情况一(try中有return,finally中没有return): [java] view plain copy public class TryTest{ public 

Java中try catch finally语句中含有return语句的执行情况

finally块中的内容会先于try中的return语句执行,如果finall语句块中也有return语句的话,那么直接从finally中返回了,这也是不建议在finally中return的原因.下面来看这几种情况. 情况一(try中有return,finally中没有return): public class TryTest{ public static void main(String[] args){ System.out.println(test()); } private static

Java中try catch finally语句中含有return语句的执行情况(总结版)

在这里看到了try >但有一点是可以肯定的,finally块中的内容会先于try中的return语句执行,如果finall语句块中也有return语句的话,那么直接从finally中返回了,这也是不建议在finally中return的原因.下面来看这几种情况. 情况一(try中有return,finally中没有return): public class TryTest { public static void main(String[] args) { System.out.println(t

Java基础 try...catch...catch 使用众多异常的父类 Exception,去捕 获 其所有子类异常

????JDK :OpenJDK-11 ?????OS :CentOS 7.6.1810 ?????IDE :Eclipse 2019?03 typesetting :Markdown ? code package per.jizuiku.base; /** * @author 给最苦 * @date 2019/06/29 * @blog www.cnblogs.com/jizuiku */ class Demo { /** * @param args */ public static void

Java基础 try...catch(多个异常) 多个异常采取同样的解决措施

????JDK :OpenJDK-11 ?????OS :CentOS 7.6.1810 ?????IDE :Eclipse 2019?03 typesetting :Markdown ? code package per.jizuiku.base; /** * @author 给最苦 * @date 2019/06/29 * @blog www.cnblogs.com/jizuiku */ class Demo { /** * @param args */ public static void

Java基础 try...catch 处理ArithmeticException 除以零的异常

????JDK :OpenJDK-11 ?????OS :CentOS 7.6.1810 ?????IDE :Eclipse 2019?03 typesetting :Markdown ? code package per.jizuiku.base; /** * @author 给最苦 * @date 2019/06/29 * @blog www.cnblogs.com/jizuiku */ class Demo { /** * @param args */ public static void

JAVA基础语法1(循环语句)

1:switch语句的格式: q'wea's'd        Switch语句:选择结构语句                      格式:                    switch(表达式){                    case 值1:                        语句1;                        break;                    case 值2:                        语句2;    

java基础-printf()语句的理解

对print和println的理解很简单,今天突然接触到printf(),有点懵,整理了下也帮自己理一理 printf是格式化输出的形式 下在举个例子: package other; public class TestPrint { //声明打印测试类 public static void main(String[] args) { //主方法 int i = 4; //声明int类型i double j = 5; //声明double类型j System.out.print("用print输出

JavaSE入门学习7:Java基础语法之语句(下)

继续接着Java基础语法来:JavaSE入门学习5:Java基础语法(一)和JavaSE入门学习6:Java基础语法(二). 语句 Java经常使用的3种循环:while.do...while,for. (5)Java循环语句之while 语法: watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" > 运行

JavaSE入门学习6:Java基础语法之运算符和语句(上)

继续接着上篇:JavaSE入门学习5:Java基础语法(一)来看Java的基础语法. 五运算符 运算符是一种"功能"符号,用以通知Java进行相关的运算.比方.我们须要将变量age的值设置为20.这时候就 须要一个"=",告诉程序须要进行赋值操作. Java 语言中经常使用的运算符可分为例如以下几种:算术运算符,赋值运算符,比較运算符,逻辑运算符,条件运符. (1)算术运算符 算术运算符主要用于进行主要的算术运算.如加法.减法.乘法.除法等. Java 中经常使用的