==========================================题外话=====================================================

今天是2016年11月26日,实习到现在已经两个多月了,这两天忽然意识到了很重要的一个问题:在实习过程中,自己不能合理的安排时间,导致自己的实习生活很累,甚至有点消极的情绪

今天周六,依然一如既往自己到公司来学习,正好有时间可以写一写自己的感悟:对于实习生来说,我个人的感觉是这样,刚走出大学,进入公司,有些观念和思维方式以及一些学习的习惯需要时间来调整,在这里,我觉得我最重要的一点,就是时间的合理规划------如果不及时自己调整,意识到问题的存在,就会让自己陷入一个比较茫然的圈子------找不到自己的定位以及生活的规律,学习的效率也会大打折扣,甚至于说成了一个敲代码的机器,不能消化所学的知识而且会让自己特别特别累。在前期可能没什么感觉,但是时间久了,这些现象就会渐渐的显现。因此,对于一个追求更大发展和更快成长的应届毕业生(只是想在公司打打酱油,过稳定日子的可以把这些话当小说看看),当你觉得自己的生活很累,有点过分的吃不消的时候,这个时候,应该及时的反思自己的生活状态,是不是已经偏离了自己的掌控,给自己一点自己的时间,及时发现问题,及时地去调整,找到自己的定位,把自己拉回到高效学习的轨道,合理规划时间让自己的职业生活尽快步入正轨。

====================================================================================================


抛出异常有三种形式,一是throw,一个throws,还有一种系统自动抛异常。下面它们之间的异同。


一、系统自动抛异常

当程序语句出现一些逻辑错误、主义错误或类型转换错误时,系统会自动抛出异常:(举个栗子)


  1. public static void main(String[] args) {
  2. int a = 5, b =0;
  3. System.out.println(5/b);
  4. //function();
  5. }

系统会自动抛出ArithmeticException异常

或者


  1. public static void main(String[] args) {
  2. String s = "abc";
  3. System.out.println(Double.parseDouble(s));
  4. //function();
  5. }

系统会自动抛出NumberFormatException异常。

二、throw

throw是语句抛出一个异常,一般是在代码块的内部,当程序出现某种逻辑错误时由程序员主动抛出某种特定类型的异常


  1. public static void main(String[] args) {
  2. String s = "abc";
  3. if(s.equals("abc")) {
  4. throw new NumberFormatException();
  5. } else {
  6. System.out.println(s);
  7. }
  8. //function();
  9. }

运行时,系统会抛出异常:

Exception in thread "main" java.lang.NumberFormatException at......

三、throws

throws是方法可能抛出异常的声明。(用在声明方法时,表示该方法可能要抛出异常)

public void function() throws Exception{......}

当某个方法可能会抛出某种异常时用于throws 声明可能抛出的异常,然后交给上层调用它的方法程序处理


  1. public class testThrows(){
  2. public static void function() throws NumberFormatException{
  3. String s = "abc";
  4. System.out.println(Double.parseDouble(s));
  5. }
  6. public static void main(String[] args) {
  7. try {
  8. function();
  9. } catch (NumberFormatException e) {
  10. System.err.println("非数据类型不能强制类型转换。");
  11. //e.printStackTrace();
  12. }
  13. }

运行结果:

非数据类型不能强制类型转换。

throw与throws的比较
1、throws出现在方法函数头;而throw出现在函数体。

2、throws表示出现异常的一种可能性,并不一定会发生这些异常;throw则是抛出了异常,执行throw则一定抛出了某种异常对象。

3、两者都是消极处理异常的方式(这里的消极并不是说这种方式不好),只是抛出或者可能抛出异常,但是不会由函数去处理异常,真正的处理异常由函数的上层调用处理。

编程习惯:

1.在写程序时,对可能会出现异常的部分通常要用try{...}catch{...}去捕捉它并对它进行处理;

2.用try{...}catch{...}捕捉了异常之后一定要对在catch{...}中对其进行处理,那怕是最简单的一句输出语句,或栈输入e.printStackTrace();

3.如果是捕捉IO输入输出流中的异常,一定要在try{...}catch{...}后加finally{...}把输入输出流关闭;

4.如果在函数体内用throw抛出了某种异常,最好要在函数名中加throws抛异常声明,然后交给调用它的上层函数进行处理。

Java中关键字throw和throws的区别的更多相关文章

  1. Java中的throw和throws的区别

    Java中的throw和throws的区别 1.throw关键字用于方法体内部,而throws关键字用于方法体部的方法声明部分: 2.throw用来抛出一个Throwable类型的异常,而throws ...

  2. java中的throw与throws的区别

    什么时运行时异常?什么是非运行时异常? 通俗的讲: 运行时异常:就是编译通过,运行时就崩了,比如数组越界. 非运行时异常:就是编译不通过,这时就得必须去处理了.不然就没法运行了. 全面的讲: Thro ...

  3. Java中的throw和throws的差别

    Java中的throw和throws的差别 1.throwkeyword用于方法体内部.而throwskeyword用于方法体部的方法声明部分: 2.throw用来抛出一个Throwable类型的异常 ...

  4. java中的throw、throws和try catch浅析

    今天在公司和同事聊天的时候,突然发现自己对java中的throw.throws和try catch的作用理解不够准确,在网上查了查,在此大概梳理一下. throw用于抛出异常,例如 throw new ...

  5. java异常和throw和throws的区别

    之前在编程中编译完成后,运行时,会遇见一些常见的错误,如NullPointerException,ArrayIndexOutOfBoundsException等等 在今天重新回顾学习了java异常,总 ...

  6. Java 中,throw 和 throws 有什么区别?

    throw 用于抛出 java.lang.Throwable 类的一个实例化对象,意思是说你可以通 过关键字 throw 抛出一个 Error 或者 一个 Exception,如:throw new ...

  7. java异常处理的throw和throws的区别

    1. 区别 throws是用来声明一个方法可能抛出的所有异常信息,throws是将异常声明但是不处理,而是将异常往上传,谁调用我就交给谁处理.而throw则是指抛出的一个具体的异常类型. 2.分别介绍 ...

  8. Java的异常处理throw和throws的区别

    区别一:              throw 是语句抛出一个异常:throws 是方法抛出一个异常:              throw语法:throw <异常对象>          ...

  9. Java中关键字super与this的区别

    一.super关键字 在JAVA类中使用super来引用父类的成分,用this来引用当前对象,如果一个类从另外一个类继承,我们new这个子类的实例对象的时候,这个子类对象里面会有一个父类对象.怎么去引 ...

随机推荐

  1. HTML 页面内容禁止选中

    写一个小笔记,怎么禁止HTML页面不被选中,复制. CSS: *{ moz-user-select: -moz-none; -moz-user-select: none; -o-user-select ...

  2. 云服务器查看外网ip

    curl ip.6655.com/ip.aspx curl whatismyip.akamai.com wget -qO - ifconfig.co curl icanhazip.com dig +s ...

  3. python 内存中写入文件(read读取不到文件解决)

    from io import StringIO a = StringIO.StringIO('title') a.write('content1\n') a.write('content2') a.s ...

  4. 小米开源文件管理器MiCodeFileExplorer-源码研究(3)-使用最多的工具类Util

    Util.java,使用最广泛~代码中很多地方,都写了注释说明~基本不需要怎么解释了~ package net.micode.fileexplorer.util; import java.io.Fil ...

  5. Android学习笔记进阶15之Shader渲染

    Android提供的Shader类主要是渲染图像以及一些几何图形. Shader有几个直接子类: BitmapShader    : 主要用来渲染图像 LinearGradient  :用来进行线性渲 ...

  6. count 变量的使用

    count:统计出现的次数,当某种情况发生时,执行 +1 的动作,+1 的动作常置于循环体内.基本结构如下: count = 0 while count < vnum and **: ... c ...

  7. JavaScript--模块化 JavaScript module designer

    module: 模块就是实现特定功能的一组方法.1.在首页的一个接口js;首先下载好require.js文件引入首页. <script src="require.js" da ...

  8. 【2017 Multi-University Training Contest - Team 9】FFF at Valentine

    [链接]http://acm.hdu.edu.cn/showproblem.php?pid=6165 [题意] 一张有向图,n个点,m条边,保证没有重边和自环.询问任意两个点能否满足任何一方能够到达另 ...

  9. HDU 3864 D_num Miller Rabin 质数推断+Pollard Rho大整数分解

    链接:http://acm.hdu.edu.cn/showproblem.php? pid=3864 题意:给出一个数N(1<=N<10^18).假设N仅仅有四个约数.就输出除1外的三个约 ...

  10. Docker---(9)Docker中容器无法停止无法删除

    原文:Docker---(9)Docker中容器无法停止无法删除 版权声明:欢迎转载,请标明出处,如有问题,欢迎指正!谢谢!微信:w1186355422 https://blog.csdn.net/w ...