Java-异常的捕获与处理(Java ExceptionDemo)



//手机终端 请上下左右 滑动屏幕 观看更全! 

//package Main;

//异常的捕获与处理
/**
 * @SaySomething(我觉得我应该说点什么的):
 *      :Java异常指的是导致程序中断执行的一种指令流,在程序执行正常的过程中会发现所有的程序都会按照既定的结构从头到尾执行,
 *       但是在出现错误之后,整个程序将不会按照既定的方式进行执行,而是中断了执行,那么为了保证程序出现;额非致命性的错误后
 *       依然可以正常继续向下执行完成,此时就需要有一个完善的异常处理机制,以保证程序顺利执行。
 *      :
 *      -
 *      -
 * @Attention(注意):
 *      1、在Java之中如果要k进行异常处理需要使用:try、catch、finally 这几个关键字来完成。
 *      2、异常关键字格式之中使用组合为:try...catch、try...catch...finally、try...finally 。
 *      3、对于异常的处理格式也可以在最后加上一个finally程序块,表示异常的处理出口,不管是否出现异常都执行
 *      4、在进行异常处理的时候输出的直接是一个异常类对象,那么对于此对象如果直接打印则调用的是(toString())
 *         所得到的异常信息并不完整,那么如果想要捕获非常完整的异常信息,则可以调用异常类中提供的printStackTrace()方法
 *      5、所有的异常类皆为Exception子类,那么按照对象的应用原则,可以自动向父类转型,
 *         这样一来实际上所有的异常皆可用Exception来处理,当不明确可能产生的异常的时候用这种处理方式是最方便的,
 *         但是他也会产生一个问题就是他描述的错误信息不明确范围太大(视情况使用)。
 *      6、在进行多个异常同时处理的时候要把捕获范围大的异常放在范围小的异常后面。
 *      7、如需明确标注异常告诉使用者这个方法可能会产生什么样的异常那么就得在此方法上使用 throws 标注。
 *      8、如果主方法继续向上抛异常那么久表示异常讲交由JVM处理。
 *      9、throws和throw的区别:1、throws是在方法上使用的,表示此方法将可能产生的异常明确告诉调用处会产生何种异常,由调用处处理。
 *         2、是在代码块中专用,主要是进行手工异常对象的抛出。
 *      10、RuntimeException 和 Exception 的区别:RuntimeException 是 Exception的子类。
 *          RuntimeException标注的异常可以不就行强制性处理,而Exception则必须强制性处理,
 *          RuntimeException常见异常有 NumberException,ClassCasException、NullPointerExca
 *      11、自定义异常类一般不是继承Exception就是继承RuntimeException 。
 *      12、java 中断言没有被设置为程序必须执行的步骤,需要特点环境下才可以,
 *          断言不会影响最终正确结果只是一个建议和提示或参考而已。
 *      13、要启用断言则可以在编译后执行的时候加上 -ea 参数
 * @time(时间):-2019/05/04
 * @role(谁):-杨木发
 *
 * @modify(修改)-:
 * -@time:
 * -@role:
 */

/*
public class ExceptionDemo {
    public static void main(String[] args) {
        System.out.println("正常开始!");
        try{//捕获异常
            System.out.println(10/0);
        }catch(ArithmeticException AE){//处理异常
            //System.out.println("哦哟哦,算术异常处理"+AE);
            AE.printStackTrace();//使用此方法会输出更为详细的异常信息
        }finally{
            System.out.println("不管异常与否我都执行!");
        }
        System.out.println("正常结束!");
    }
}
*/

/*
class ExceptionDemo1{
    public static void main(String[] args) {
        System.out.println("正常开始!");
        try{//可能出现多个异常
            int x = Integer.parseInt(args[0]);
            int y = Integer.parseInt(args[1]);
            System.out.println("数雪计算:"+(x/y));

            //多个异常捕获
        }catch(ArithmeticException AE1){//处理异常
            AE1.printStackTrace();//使用此方法会输出更为详细的异常信息
            System.out.println("www");
        }catch(NumberFormatException NE1){
            NE1.printStackTrace();
            System.out.println("www");
        }catch(Exception E1){//在进行多个异常同时处理的时候要把捕获范围大的异常放在范围小的异常后面。
            E1.printStackTrace();
            System.out.println("www");
        }finally{
            System.out.println("不管异常与否我都执行!");
        }
        System.out.println("正常结束!");
    }
}
*/

/*
//throws(异常类的标注)
class ExceptionDemo2{
    public static int div(int x,int y)throws Exception{
        return x/y ;
    }
    public static void main(String[] args)throws Exception {
        System.out.println("正常开始!");
        try{
            System.out.println(ExceptionDemo2.div(10,0));
        }catch(Exception E2){
            E2.printStackTrace();
        }
        System.out.println("正常结束!");
    }
}
*/

/*
//throw(手工产生一个异常类实例化对象并进行抛出)
class ExceptionDemo3{
    public static void main(String[] args){
        try{
            //异常对象不再是由系统生成的,而是由手工定义的
            throw new Exception("自己抛这玩儿的异常") ;

        }catch(Exception E3){
            E3.printStackTrace() ;
        }
    }
}
 */

/*
//实现自定义异常
class CustomException{
    public static void main(String[] args)throws Exception {
        CustomException2.eat(11);
    }
}
//自定义异常
class CustomException1 extends Exception{
    public CustomException1(String args) {
        super(args);
        }
    }

    class CustomException2{
        public static void eat(int num)throws CustomException1{
            if(num>10){
                throw new CustomException1("吃十碗饭,胀死你个龟儿子!");
            }else{
                System.out.println("吃吧孩子,你不会胖的...");
            }
        }
    }
*/


//assert断言
class AssertDemo{
    public static void main(String[] args) throws Exception{
        int x=100 ;
        //中间X变量结果一系列的操作步骤(值在变化)
        assert x==10:"X是的值是10" ;
        System.out.println(x);//输出值不会因为断言而受到影响,如果 启用 -ea 参数则抛异常

    }
}

/*-------------------反爬声明o()咻咻咻--------------------
 

作者:**杨木发** 版权声明: 本文为博主倾情原创文章,整篇转载请附上源文链接!

如果觉得本文对你有所收获,你的请评论点赞 与

合理优质的转发也将是鼓励支持我继续创作的动力,

更多精彩可百度搜索 杨木发 或:

个人网站:杨木发的自留地 - 此地无银三百两

GitHub:https://github.com/yangmufa

坚持创作 善于总结 开源共享 高质进步。

-------------------反爬声明o()咻咻咻--------------------*/

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
你好!你所提到的异常机制处理异常输入的问题,这是因为Java编程语言的异常机制可以用来处理程序运行时出现的异常情况,包括但不限于输入错误、网络连接错误等等。当程序出现异常情况时,异常机制可以帮助我们捕获这些异常,然后根据我们的需要进行处理,以便程序可以继续正常运行。 如果你在处理异常输入时遇到了问题,可以考虑使用try-catch语句来捕获异常。在try块,你可以包含一些可能会引发异常代码;如果异常确实发生了,那么程序会跳转到对应的catch块,从而使你可以在catch块处理异常。在处理异常后,程序将继续执行try-catch语句块之后的代码。 例如,下面的代码演示了如何使用try-catch语句来处理异常输入: ```java import java.util.Scanner; public class ExceptionDemo { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int num = 0; try { System.out.print("请输入一个整数:"); num = scanner.nextInt(); } catch (Exception e) { System.out.println("输入错误,请输入一个整数。"); return; // 如果输入错误,则程序直接结束 } System.out.println("输入的整数是:" + num); } } ``` 在这个例子,我们尝试从标准输入读取一个整数。如果输入的不是整数,那么nextInt()方法就会抛出InputMismatchException异常,然后程序会跳转到catch块,输出一条错误信息,并直接返回,从而结束程序的执行。如果输入的是整数,那么程序就会继续执行,输出输入的整数。 希望这个例子可以帮助你理解如何使用异常机制来处理异常输入。如果你有任何其他问题,请随时问我!

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

编程小马达

你的鼓励将是我创作的最大动力o

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值