ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

day26

2021-08-06 20:33:51  阅读:178  来源: 互联网

标签:String ScoreException 处理 day26 编译 异常 public


异常
    Throwable
      |
  ------------------------
  |         |
    Error     Exception
          |
    ---------------------------------
    |               |
RuntimeException    非RuntimeException


Error:严重问题,不需要处理
Exception:异常类,它表示程序本身可以处理的问题
RuntimeException:在编译期不检查,出现问题后,需要我们回来修改代码
非RuntimeException:编译期就必须处理,否则程序不能通过编译,就不能运行

程序出现异常,若没做任何处理,JVM会做默认处理:
1.把异常的名称,原因及异常出现的位置等信息输出在控制台
2.程序停止执行

异常处理
try{
可能出现异常的代码;
}catch(异常类名 变量名){
异常的处理代码;
}
程序从try里面的代码开始执行,出现异常后会自动生成一个异常类对象,该异常对象将提交给java运行时系统
当java运行时系统接受到异常对象时,会到catch中去找匹配的异常类,找到后进行异常的处理,完成后程序继续执行

Throwable
public String getMessage()//返回异常原因
public String toString()//返回此可抛出的简短描述
public void printStackTrace()//把异常的错误信息输出在控制台(错误信息最全)

 

1.编译时异常:RuntimeException类及其子类,必须显示处理,否则无法编译
2.运行时异常:除编译时异常外,无需显示处理

shrows 异常类名;
编译时异常必须要处理:try...catch或throws,如果用throws将来谁调用谁处理
运行时异常可以不处理,出现问题后需要改代码

自定义异常
public class 异常类名 extends Exception{
public 异常类名(){}
public 异常类名(String message){
super(message);
}
}

例子
public class ScoreException extends Exception{
public ScoreException(){}
public ScoreException(String message){
super(message);
}
}

public class Teacher
{
public void checkScore(int score) throws ScoreException
{
if(score<0||score>100)
{
shrow new ScoreException("你给的分数有误");
}else
{
System.out.println("分数正常");
}
}
}

import java.util.Scanner;
public class TeacherDemo
{
public static void main(String[] args)
{
Scanner sc= new Scanner(System.in);
System.out.println("请输入分数");
int score = sc.nextInt();

Teacher t = new Teacher();
try{
t.checkScore(score);
}catch(ScoreException e){
e.printStackTrace();
}//若分数不在0-100间则按照Teacher中的信息输出
}
}

标签:String,ScoreException,处理,day26,编译,异常,public
来源: https://www.cnblogs.com/yx111/p/15110207.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有