为了账号安全,请及时绑定邮箱和手机立即绑定
慕课网数字资源数据库体验端
Java入门第三季_学习笔记_慕课网
为了账号安全,请及时绑定邮箱和手机立即绑定

Java入门第三季

陈码农
难度入门
时长 5小时 0分
  • 异常处理经验总结


    查看全部
    0 采集 收起 来源:经验总结

    2018-04-12

  • **checked异常:I**O异常,以及SQL异常都是这种异常。 对于这种异常, JAVA编译器强制要求我们必需对出现的这些异常进行catch 。所以,面对这种异常不管我们是否愿意,只能自己去写一大堆catch块去处理可能的异常。 这类异常一般是外部错误,例如试图从文件尾后读取数据等,这并不是程序本身的错误,而是在应用环境中出现的外部错误。 

    查看全部
    0 采集 收起 来源:经验总结

    2018-04-12

  • 出现运行时异常后,系统会把异常一直往上层抛,直到遇到处理代码。如果没有处理块,到最上层,如果是多线程就由Thread.run()抛出,如果是单线程就被main()抛出。抛出之后,如果是线程,这个线程也就退出了。如果是主程序抛出的异常,那么这整个程序也就退出了。运行时异常是Exception的子类,也有一般异常的特点,是可以被Catch块处理的。只不过往往我们不对他处理罢了。也就是说,你如果不对运行时异常进行处理,那么出现运行时异常之后,要么是线程中止,要么是主程序终止。 如果不想终止,则必须扑捉所有的运行时异常,决不让这个处理线程退出。队列里面出现异常数据了,正常的处理应该是把异常数据舍弃,然后记录日志。不应该由于异常数据而影响下面对正常数据的处理。在这个场景这样处理可能是一个比较好的应用,但并不代表在所有的场景你都应该如此。如果在其它场景,遇到了一些错误,如果退出程序比较好,这时你就可以不太理会运行时异常,或者是通过对异常的处理显式的控制程序退出。

    查看全部
    0 采集 收起 来源:经验总结

    2018-04-12

  • 新的异常包含原始异常的所有信息

    查看全部
  • 捕获到的异常,可以在当前方法的 catch 块中处理,也可抛出给调用者去处理

    查看全部
    0 采集 收起 来源:练习题

    2018-04-12

  • 包装成运行是异常

    查看全部
  • 自定义异常

    查看全部
  • RuntimeException的子类有:

    空指针异常:NullpointException

    数组下标越界异常:ArryIndexOutOfBoundsException

    类型转换异常:ClassCastExcepption

    算数异常:ArithmeticException

    查看全部
    0 采集 收起 来源:Java异常简介

    2018-04-11

  • HashMap类
    查看全部
  • Map方法
    查看全部
  • 如果是String类型的id,比较的就是数字的首位向后比较,如1000<299。而如果是数据类型,就是正常的比较方法。

    查看全部
  • package com.imooc.proj_1;
    
    import java.util.Scanner;
    
    public class BookManagerEasy {
    	private static Scanner console = new Scanner(System.in);
    
    	public static void main(String[] args) {
    		//定义”图书“数组
    		String[] books = { "C语言", "数据结构", "汇编语言", "高数", "大学语文", "毛概" };
    		while (true) {
    			System.out.println("输入命令:1-按照名称查找图书;2-按照序号查找图书");
    			String book;
    			try {
    				//取得整型命令
    				int command = inputCommand();
    				//根据不同命令值,进行不同操作
    				switch (command) {
    				case 1://按照图书名称选择图书
    					book = getBookByName(books);
    					System.out.println("book:" + book);
    					break;
    				case 2://按照图书序号(数组下标)选择图书
    					book = getBookByNumber(books);
    					System.out.println("book:" + book);
    					break;
    				case -1://返回值为-1,说明输入有误
    					System.out.println("命令输入错误!请根据提示输入数字命令!");
    					continue;
    				default://其他值的命令均认为是错误命令
    					System.out.println("命令输入错误!");
    					continue;
    				}
    				break;//退出程序
    			} catch (Exception bne) {
    				//捕获”图书不存在异常“时,要求重新输入命令
    				System.out.println(bne.getMessage());
    				continue;
    			} 
    		}
    	}
    
    	//按照图书名称查询图书
    	private static String getBookByName(String[] books)
    			throws Exception {
    		System.out.println("输入图书名称:");
    		//获取输入的图书名称
    		String name = console.next();
    		for (int i = 0; i < books.length; i++) {
    			if (name.equals(books[i]))
    				//输入的名称与某一图书名称匹配,返回该图书
    				return books[i];
    		}
    		//若无匹配,抛出”图书不存在异常“
    		throw new Exception("图书不存在!");
    	}
    
    	//根据图书序号(数组下标)查询图书
    	private static String getBookByNumber(String[] books)
    			throws Exception {
    		while (true) {
    			System.out.println("输入图书序号:");
    			try {
    				//获取输入的图书序号(数组下标)
    				int index = inputCommand();
    				//若返回值为-1
    				if(index == -1){
    					System.out.println("命令输入错误!请根据提示输入数字命令!");
    					continue;
    				}
    				//若不出现”数组下标越界异常“,则返回相应位置的图书
    				String book = books[index];
    				return book;
    			} catch (ArrayIndexOutOfBoundsException e) {
    				//输入的序号不存在(引发”数组下标越界异常“),则抛出”图书不存在异常“
    				Exception bookNotExists = new Exception("图书不存在!");
    				bookNotExists.initCause(e);
    				throw bookNotExists;
    			}
    		}
    	}
    
    	//从控制台输入命令,用于输入命令和输入图书序号
    	private static int inputCommand(){
    		int command;
    		try {
    			command = console.nextInt();
    			return command;
    		} catch (Exception e) {
    			//若输入字符型或者字符串,则抛出异常,捕获该异常,抛出”错误命令异常“
    			console = new Scanner(System.in);
    			//返回-1
    			return -1;
    		}
    	}
    }


    查看全部
    6 采集 收起 来源:经验总结

    2018-04-11

  • Java集合框架的成员

    查看全部
  • Comparable 的比较规则是系统默认的规则,而是需要修改比较规则的时候,就用Comparetor

    查看全部

举报

0/150
提交
取消
课程须知
此部分为 Java 课程的进阶内容,适合具有一定 Java 基础的伙伴们学习,如果您是新手,建议您移步 《Java入门第一季》 和 《Java入门第二季》,在理解并掌握面向对象相关知识后再回来进修。
老师告诉你能学到什么?
本课程将学习 Java 中的异常处理、集合框架、字符串、常用类等,逐步学习掌握 Java 高级技术。
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!