JAVA学习笔记No.06

JAVA异常处理(后端开发)

Java异常处理之try-catch之异常捕获
JAVA中提供了一种捕获异常的机制:try-catch

try{
	...
}
catch(Exception e) {
	异常处理代码
}
...

举例:除数不能为0

import java.util.Scanner;
 
public class ExcTest {
    public static void main(String[] args) {
        // 第一步:接收给定的整数
       Scanner x=new Scanner(System.in);
       int a=x.nextInt();
       int b=x.nextInt();
        // 第二步:求给定两个数的商,并捕获除数为0的异常
     try{
         int q=a/b;
        System.out.print(q);
    }
    catch(Exception e)
    {
        System.out.print("除数不能为0");
    }
}}

finally语句

Java异常处理之finally语句之输出所有元素

不管有没有出现异常,finally中的语句块都会执行,即使当trycatch中出现return时,仍会执行。
finally语句通常用来释放资源,关闭数据库,关闭文件等操作

/*
任务:接收给定的一行字符串,实现以下需求:
1.通过-切割字符串,得到一个字符串数组;
2.将数组中每个元素转化为int类型,使用finally输出所有元素;
3.捕获数据类型转换异常,当捕获到异常时,输出“元素x不能转换为整数”。
字符串样式:98-32-java-hao-tian。
切割后的字符串数组中的元素有些不由数字组成,当我们把这些元素转换为int类型时,会生成一个叫做数据类型转换的异常。
程序功能示例:
输入字符串:8-9-se-10
输出样例:
 元素8
 元素9
 元素se不能转换为int类型
 元素se
 元素10
*/
import java.util.Scanner;
public class ExcTest {
    public static void main(String[] args) {
        // 切割给定的一行字符串,得到一个字符串数组,
        // 将数组中每个元素转化为int类型,使用 finally 输出所有元素,并捕获数据类型转换异常
        Scanner scanner = new Scanner(System.in);     // 接收给定的字符串
        String s = scanner.nextLine();
        String[] split = s.split("-");     // 切割字符串,得到一个数组
            for(String str:split) {     // 将数组中所有元素转化为int类型,并捕获异常
                try {
                  int x = Integer.parseInt(str);
                } catch (Exception e) {
                    System.out.println(String.format("元素%s不能转换为int类型", str));
                }
                  finally {     // 使用finally输出所有元素
                    System.out.println("元素"+str);
                }
         }
   }
 }
/**
*next()方法只有扫描到有效字符后才会结束输入(用户没有输入的时候不会结束);
*next()方法会自动去掉空白(例如回车、空格等),也不能得到带有空格的字符串;
*nextLine()方法可以直接使用回车结束输入。nextLine()方法可以得到空白和带有空格的字符串。
*/

自定义异常

class 自定义异常名 extends Exception{
      public 自定义异常名(){  
      }  
      // msg代表抛出异常后显示的信息提示  
      public 自定义异常名(String msg){  
        super(msg);  
      }  
}  
public class tt {  
    public static void main(String[] args) throws MyException {  
        int i=0;  
        if(i==0){     // 当i=0时抛出自定义异常  
            throw new MyException("我是自定义异常");  
        }  
    }  
}
// 自定义异常  
class MyException extends Exception{  
    public MyException(){  
    }  
    // msg代表抛出异常后显示的信息提示  
    public MyException(String msg){  
        super(msg);  
    }  
}  

Java异常处理之自定义异常之判断用户名

import java.util.Scanner;
public class ExcTest {
    public static void main(String[] args) throws MyException  {
		// 第一步:接收给定的字符串
        Scanner input = new Scanner(System.in);
        String str = input.next();
        // 第二步:判断用户名长度是大于3还是小于3,如果小于3,抛出异常,否则输出提示语句
        if (str.length() < 3){
            throw new MyException("用户名小于三位Exception");//抛出异常
        }else {
            System.out.println("用户名格式正确");
        }
    }    
}
        // 第三步:自定义异常
        class MyException extends Exception{
            public MyException(){
            }
            public MyException(String name){
                super(name);
            }
        }
输出:
Exception in thread "main" MyException: 用户名小于三位Exception  
    at ExcTest.main(ExcTest.java:11)  
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值