JavaPPT课后作业信1403-2程怀远20142897 11月15号

本文介绍了异常处理的基础知识,包括try/catch/finally语句的使用,throws语句的应用,以及受控与不受控异常的区别。通过一个成绩评定程序实例,展示了如何使程序更加健壮,能够妥善处理各种用户输入。

1、异常处理的基础知识:

把可能会发生错误的代码放进try语句块中。当程序检测到出现了一个错误时会抛出一个异常对象。异常处理代码会捕获并处理这个错误。catch语句块中的代码用于处理错误。当异常发生时,程序控制流程由try语句块跳转到catch语句块。不管是否有异常发生,finally语句块中的语句始终保证被执行。如果没有提供合适的异常处理代码,JVM将会结束掉整个应用程序。

2、throws语句的应用:

throws语句表明某方法中可能出现某种(或多种)异常,但它自己不能处理这些异常,而需要由调用者来处理。当一个方法包含throws子句时,需要在调用此方法的代码中使用try/catch/finally进行捕获,或者是重新对其进行声明,否则编译时报错。

3、受控与不受控的异常:

throws语句中声明的异常称为受控(checked)的异常,通常直接派生自Exception类。RuntimeException(其基类为Exception) 和Error(基类为Throwable)称为非受控的异常。这种异常不用在throws语句中声明。CheckedExceptionDemo.java示例展示了上述两种异常的特性。

4、finally语句块不一定会执行,当Try语句中throw一个错误时fin被catch语句截获,并在catch语句中有exit(0)时,finally语句不会被执行,而当去掉时finally语句才会被执行。

 

5、编写一个程序,此程序在运行时要求用户输入一个     整数,代表某门课的考试成绩,程序接着给出“不及格”、“及格”、“中”、“良”、“优”的结论。100-90 90-80 80-70 70-60 60-0要求程序必须具备足够的健壮性,不管用户输入什   么样的内容,都不会崩溃。

源代码:

import javax.swing.JOptionPane;//引用消息框
public class Score {//创建一个公共类
    public static void main(String[] args){//java入口方法
        for(;;)//无限循环语句
        {
            String a =  JOptionPane.showInputDialog("请输入一个成绩:");//提示框提示输入一个数
            try{
                int b =  Integer.parseInt(a);//强制类型转换
                if(b>0&&b<60){
                    JOptionPane.showMessageDialog(null,
                            "不及格!");//消息提示框提示
                    break;//跳出循环
                }
                else if(b>=60&&b<=70)
                {
                    JOptionPane.showMessageDialog(null,
                            "及格!");//消息提示框提示
                    break;//跳出循环
                }
                else if(b>70&&b<=80)
                {
                    JOptionPane.showMessageDialog(null,
                            "成绩中等!");//消息提示框提示
                    break;//跳出循环
                }
                else if(b>80&&b<=90)
                {
                    JOptionPane.showMessageDialog(null,
                            "成绩良好!");//消息提示框提示
                    break;//跳出循环
                }
                else if(b>90&&b<=100)
                {
                    JOptionPane.showMessageDialog(null,
                            "成绩优秀!");//消息提示框提示
                    break;//跳出循环
                }
                else if(b>100||b<0)
                {
                    JOptionPane.showMessageDialog(null,
                            "您输入的成绩超出范围,请重新输入!");//消息提示框提示
                }
            }
            catch(Exception e){
                JOptionPane.showMessageDialog(null,
                        "您的输入有误,请重新输入!");//消息提示框提示
            }
        }
        
    }
}

 

转载于:https://www.cnblogs.com/chy-916/p/4967376.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值