10/13-10/19 java学习总结(没有课堂的课后学习总结) &实验总结6

实验六 Java异常

  • 实验目的
  • 理解异常的基本概念;
  • 掌握异常处理方法及熟悉常见异常的捕获方法。
  • 实验要求
  • 练习捕获异常、声明异常、抛出异常的方法、熟悉try和catch子句的使用。
  • 掌握自定义异常类的方法。
  • 实验内容
  • 编写一个类,在其main()方法中创建一个一维数组,在try字句中访问数组元素,使其产生ArrayIndexOutOfBoundsException异常。在catch子句里捕获此异常对象,并且打印“数组越界”信息,加一个finally子句,打印一条信息以证明这里确实得到了执行。
  • 自定义异常类的使用

车站检查危险品的设备,如果发现危险品会发出警告。编程模拟设备发现危险品。

技术方案:

编写一个Exgeption的子类DangerException,该子类可以创建异常对象,该异常对象调用toShow()方法输出“危险物品”。编写一个Machine类,该类的方法checkBag(Goods goods)当发现参数goods是危险品时(goods的isDanger属性是true)将抛出DangerException异常。
程序在主类的main()方法中的try-catch语句的try部分让Machine类的实例调用checkBag(Goods goods)的方法,如果发现危险品就在try-catch语句的catch部分处理危险品。

package id;
import java.util.*;
public class hope {

    public static void main(String[] args) {
        int score[]=new int [9];
        Scanner out = new Scanner(System.in);
        int n = out.nextInt();
        try{
            for(int i=0;i<9;i++){
                score[i]=i+1;

            }
            System.out.println("score["+n+"]="+score[n]+" ");
        }catch(ArrayIndexOutOfBoundsException a){
            System.out.println("越界:"+a);
        }finally{
            System.out.println("处理完毕");
        }
    }

}

  

package id;
class DangerException extends Exception{
    public void examination() {
        System.out.println("易燃易爆危险物品");
    }
}

class thing{
    private boolean Danger;
    private String name;
    public Object getName;

    public Goods(boolean Danger,String name) {
        this.Danger=Danger;
        this.name=name;
    }
    public boolean Danger()
    {
        return Danger;
    }
    public void setName(String name)
    {
        this.name=name;
    }
    public String getName()
    {
        return name;
    }

}
class Machine{
    public void checkBag(thing goods)throws DangerException{
        if(goods.Danger())
            throw new DangerException();
        else
            System.out.println(goods.getName()+"不是易燃易爆危险品");
    }
}
public class hope{

    public static void main(String[] args){
        Machine mac=new Machine();
        thing goods=new Goods(false, null);
        String a[]={"c4","打火机","笔记本电脑"};
        for(int i=0;i<a.length;i++)
        {
            goods.setName(a[i]);
            if(a[i].equals("c4")||a[i].equals("打火机"))
            {
                goods.Danger();
                System.out.println(a[i]+"是易燃易爆危险品");
            }
            else
                goods.Danger();
        }

        try {
            mac.checkBag(goods);
        }catch(DangerException e)
        {
            e.examination();
        }

    }
}

学习总结

throw与throws的区别与共同点

1.throws出现在方法函数头,throw出现在函数体。
2.throws表示出现异常的一种可能(不一定会发生这些异常),throwthrow则一定抛出了某种异常对象。

3.throw不会单独使用

两者都是消极处理异常的方式,不会由函数去处理异常,真正的处理异常由函数的上层调用处理。

Thread类与Runnable接口

Thread类:Thread对象代表Java程序中单个的运行线程。一个类通过继承Thread类,同时重写其run()方法,就可以实现多线程的方式运行,并继承Thread类的所有方法。Run()方法是运行线程的主体,且由Java直接调用run()方法。

Runnable接口:Runnable接口中只定义了一个方法,即为run方法void run()使用实现接口 Runnable 的对象创建一个线程时,启动该线程将导致在独立执行的线程中调用对象的 run 方法。

Thread类runnable接口的区别(不太好解释举个栗子把)

继承Thread类的,就是将任务分给每一个对象来分别完成,因为MyThread继承Thread类,所以在new MyThread的时候在创建对象的同时创建线程;

实现Runnable的, 就是将任务分给多个对象共同完成,new MyThread相当于创建一个任务,然后实例化多个对象,创建线程即安排窗口执行。

try 和 catch 关键字
try 和 catch 关键字是用来捕获异常的关键字
Catch 语句包含要捕获异常类型的声明。当保护代码块中发生一个异常时,try 后面的 catch 块就会被检查。

如果try里没有代码,或者没有try,出现异常会导致程序崩溃。

Throwable的子类Exception类与RuntimeException类的区别

1、Exception在程序中是必须使用try…catch进行处理。

2、RuntimeException可以不使用try…catch进行处理,但是出现异常要给JVM进行处理

原文地址:https://www.cnblogs.com/lpf666/p/11701675.html

时间: 2024-10-12 14:58:02

10/13-10/19 java学习总结(没有课堂的课后学习总结) &实验总结6的相关文章

9/15-9/21 java学习总结(课堂及课后学习总结) &实验总结2

9/15-9/21 java学习总结(课堂及课后学习总结) &实验总结2 String类两种实例方法及区别 第一种方法是通过直接赋值的方式,另外一种方法是调用构造方法完成实例化.. 区别:第一种方法的话一个字符串被一个名称引用过后如果再有相同的字符串声明时,就不用再重新开辟空间.第二种方法的话每次引用字符串都必须要重新开辟空间. StringBuffer类 String对象一经声明,便不能修改它的内容,修改的只是引用的地址:而StringBuffer对象是可以改变它的内容的 StringBuff

升级MAC OS到10.13, 10.14系统后UNITY工程无法加载资源的解决办法

升级MAC OS到10.13, 10.14系统后,出现UNITY工程无法加载资源的情况: Unity项目中Asset目录显示为空! 解决办法一: 打开Launchpad中的磁盘工具 (也就是实用工具下的"磁盘工具") 新建一分区,名称大小任意,格式为MAC OS 扩展(日志式) 将unity工程移至新分区 OK,工程已经可以正常加载了 解决办法二: 1. 升级Unity版本 (如Unity5.6.6, Unity 2018.1 均可以)   2. 安装相应的补丁版Unity3D 参考链

9/29-10/5 java学习总结(没有课堂的课后学习总结) &实验总结4

这周上课请假了,不知道上课讲了什么,就进行一下自己学习的一些总结吧首先面向对象程序设计是一种编程架构,面向对象程序设计(Object Oriented Programming,OOP)是一种编程架 构,是一种运用对象.类.继承.封装.聚合.关联.消息和多态等概念来构造系统的软件开发方法.在这之前的设计方法还有面向机器,面向过程,最终现在使用的设计方法是面向对象的设计方法,经过这个月的学习我觉得的面向对象程序设计更强调从客观的事物中来解决问题,更强调在程序中表达人的思想 对象(object):是系

这是一套Java菜鸟到大牛的学习路线之高级教程,由工作了10年的资深Java架构师整理。

这是一套Java菜鸟到大牛的学习路线之高级教程,由工作了10年的资深Java架构师整理.        01-java高级架构师设计-基础深入        J2SE深入讲解        Java多线程与并发库高级应用视频教程下载        java反射机制        java设计模式视频        数据结构视频教程        Eclipse视频教程.zip        MyEclipse视频教程.zip    02-java高级架构师设计-JavaEE拓展        A

每周进度及工作量统计——2016.10.06-2016.10.13

项目:词频统计--web支持 项目类型:个人项目 项目完成情况:已完成 项目改进:新项目 项目日期:2016.10.9-2016.10.10 C类别 C内容 S开始时间 E结束时间 I间隔 T净时间 P预计时间 分析 设计  9:12  10:37  55  30  20 学习 查阅资料  10:37  11:46  0  69  30 编码 实现上传  16:03  21:53  127  223  180 优化 改进 9:56 17:41  149  316  120 文档 程序说明,随笔

夯实Java基础系列10:深入理解Java中的异常体系

目录 为什么要使用异常 异常基本定义 异常体系 初识异常 异常和错误 异常的处理方式 "不负责任"的throws 纠结的finally throw : JRE也使用的关键字 异常调用链 自定义异常 异常的注意事项 当finally遇上return JAVA异常常见面试题 参考文章 微信公众号 Java技术江湖 个人公众号:黄小斜 - Java异常 本系列文章将整理到我在GitHub上的<Java面试指南>仓库,更多精彩内容请到我的仓库里查看 https://github.c

10种简单的Java性能优化(转)

本文由 ImportNew - 一直在路上 翻译自 jaxenter.欢迎加入翻译小组.转载请见文末要求. 你是否正打算优化hashCode()方法?是否想要绕开正则表达式?Lukas Eder介绍了很多简单方便的性能优化小贴士以及扩展程序性能的技巧. 最近"全网域(Web Scale)"一词被炒得火热,人们也正在通过扩展他们的应用程序架构来使他们的系统变得更加"全网域".但是究竟什么是全网域?或者说如何确保全网域? 扩展的不同方面 全网域被炒作的最多的是扩展负载(

Java基础10:全面解读Java异常

Java基础10:全面解读Java异常 为什么要使用异常 首先我们可以明确一点就是异常的处理机制可以确保我们程序的健壮性,提高系统可用率.虽然我们不是特别喜欢看到它,但是我们不能不承认它的地位,作用. 在没有异常机制的时候我们是这样处理的:通过函数的返回值来判断是否发生了异常(这个返回值通常是已经约定好了的),调用该函数的程序负责检查并且分析返回值.虽然可以解决异常问题,但是这样做存在几个缺陷: 1. 容易混淆.如果约定返回值为-11111时表示出现异常,那么当程序最后的计算结果真的为-1111

【转】Install SmartGit via PPA in Ubuntu 13.10/13.04/12.04/Linux Mint

原文网址:http://ubuntuhandbook.org/index.php/2013/09/install-smartgit-via-ppa-ubuntu-linux-mint/ This tutorial will show you how to install SmartGit/HG easily via PPA in Ubuntu 13.10, Ubuntu 13.04, Ubuntu 12.04, Ubuntu 12.10 and Linux Mint. As you may kn