本文是<The Java Native Interface Programmer's Guide and Specification>读书笔记 在这里只讨论调用JNI方法可能会出现的异常, 在本地方法里捕捉并抛出异常 下面的例子说明怎样声明一个可能抛出异常的本地方法: class CatchThrow { //声明一个本地方法,并可能会抛出不合法参数异常 private native void doit() throws IllegalArgumentException; private vo…
Tips 书中的源代码地址:https://github.com/jbloch/effective-java-3e-source-code 注意,书中的有些代码里方法是基于Java 9 API中的,所以JDK 最好下载 JDK 9以上的版本. 77. 不要忽略异常 虽然这一建议似乎显而易见,但它经常被违反,因此值得重复提及.当API的设计人员声明一个抛出异常的方法时,他们试图告诉你一些事情.不要忽忽略它!在方法调用的周围加上一条try语句,其catch块为空,这样就很容易忽略了异常: // Em…
本文将记录ServletConfig/ServletContext中提供了哪些方法,及方法的用法. ServletConfig是一个抽象接口,它是由Servlet容器使用,在一个servlet对象初始化时,Servlet容器传递信息给正在初始化的servlet对象. public abstract interface javax.servlet.ServletConfig { public abstract java.lang.String getServletName(); public ab…
一. 常用查询: 1. 查询一条数据:(多用于保存时判断db中是否已有当前数据,这里 is  精确匹配,模糊匹配 使用 regex...) public PageUrl getByUrl(String url) { return findOne(new Query(Criteria.where("url").is(url)),PageUrl.class); } 2. 查询多条数据:linkUrl.id 属于分级查询 public List<PageUrl> getPageU…
通过一个系统,接触到了Java安全机制,故作一小节,供朋友们参考学习. 1. HTTPS概念 1)简介 HTTPS(全称:Hypertext Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP的安全版.即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL.这个系统的最初研发由网景公司进行,提供了身份验证与加密通讯方法,现在它被广泛用于万维网上安全敏感的通讯,例如交易支付方面. 2…
Java堆是和Java应用程序关系最为紧密的内存空间,几乎所有的对象都存放在堆中.并且堆是完全自动化管理的. 根据垃圾回收机制的不同,Java堆有可能有不同的结构.最为常见的一种就是将整个Java堆分为新生代和老年代.其中,新生代存放新生对象或者年龄不大的对象. 老年代存放老年对象.新生代可能分为eden区.s0区.s1区,s0和s1也被成为from和to区域,他们是两块大小相等,可以互换角色的内存空间. 在多数情况下,对象首先分配在eden区,在一次新生代回收后,如果对象还存活,则会进入s0或…
面向对象编程有三大特性:封装.继承.多态. 封装隐藏了类的内部实现机制,可以在不影响使用的情况下改变类的内部结构,同时也保护了数据.对外界而已它的内部细节是隐藏的,暴露给外界的只是它的访问方法. 继承是为了重用父类代码.两个类若存在IS-A的关系就可以使用继承.同时继承也为实现多态做了铺垫.那么什么是多态呢?多态的实现机制又是什么?请看我一一为你揭开. 多态 所谓多态就是指程序中定义的引用变量所指向的具体类型和通过该引用变量发出的方法调用在编程时并不确定,而是在程序运行期间才确定,即一个引用变量…
Java异常    异常指不期而至的各种状况,如:文件找不到.网络连接失败.非法参数等.异常是一个事件,它发生在程序运行期间,干扰了正常的指令流程.Java通 过API中Throwable类的众多子类描述各种不同的异常.因而,Java异常都是对象,是Throwable子类的实例,描述了出现在一段编码中的 错误条件.当条件生成时,错误将引发异常. Java异常类层次结构图: 图1 Java异常类层次结构图 在 Java 中,所有的异常都有一个共同的祖先 Throwable(可抛出).Throwab…
目录 简介 Exception和Error Throw和catch Finally 总结 简介 Exception是程序中的异常情况,在JAVA中exception有checked Exception和unchecked Exception.那么在dart中的情况是不是一样的呢?一起来看看吧. Exception和Error Dart中表示异常的类有两个,分别是Exception和Error.他们两个有什么区别呢? Exception是由VM或者dart code中抛出的. Exception主…
java 多线程一 java 多线程二 java 多线程三 java 多线程四 注意到 java 多线程一 中 MyThread2 运行结果出现0.-1,那是因为在操作共享数据时没有加锁导致. 加锁的方式: 1.同步方法 2.同步代码块 3.锁 读过 java.util.concurrent 集合源码就知道: HashMap: public V put(K key, V value) {...} Hashtable: public synchronized V put(K key, V valu…
//############################################################################ /* * 不要让异常离开析构函数 * 析构函数中抛异常,会导致可能同时有多个异常pending * 因为一旦出现异常,栈回退的过程中会析构函数.如果析构函数又抛出异常,就会有多个异常pending */ class dog { public: string m_name; dog(string name) {m_name = name; c…
概要 本章介绍<Java Puzzles>中关于异常的几个谜题.这一章都是以代码为例,相比上一章看起来更有意思.内容包括:谜题1: 优柔寡断谜题2: 极端不可思议谜题3: 不受欢迎的宾客谜题4: 您好,再见!谜题5: 不情愿的构造器谜题6: 域和流谜题7: 异常为循环而抛 转载请注明出处:http://www.cnblogs.com/skywang12345/p/3544353.html 谜题1: 优柔寡断 看看下面的程序,它到底打印什么? public class Indecisive {…
一.什么是异常 异常就是在程序的运行过程中所发生的不正常的事件,如所需文件找不到,网络连接不通或中断,算术运算出错(如被0除),数组下标越界,装载了一个不存在的类,对null的操作,类型转换异常等等.那么异常会中断正在运行的程序. 二.异常处理 异常处理机制就像我们对平时可能会遇到的意外情况,预先想好了一些处理办法.也就是说,在程序执行代码的时候,万一发生了什么异常,程序会按照预定的处理办法对异常进行处理,异常处理完毕后,程序继续运行. 三.异常的分类 01.Throwable 类是 Java …
1. Java.lang.NullPointerException  这个异常大家肯定都经常遇到,异常的解释是"程序遇上了空指针",简单地说就是调用了未经初始化的对象或者是不存在的对象,这个错误经常出现在创建图片,调用数组这些操作中,比如图片未经初始化,或者图片创建时的路径错误等等.对数组操作中出现空指针,很多情况下是一些刚开始学习编程的朋友常犯的错误,即把数组的初始化和数组元素的初始化混淆起来了.数组的初始化是对数组分配需要的空间,而初始化后的数组,其中的元素并没有实例化,依然是空的…
1.异常try{ //可能出现异常的代码}catch(Exception ex){ }finally{ //释放资源}2.异常的高级应用开闭原则:对修改关闭,对新增开放3.什么是异常?解析:异常是代码在运行时发生的错误int result=5/0;*********************************************异常: 01.5个关键字 try catch finally throw throws 02.try catch三种应用场景 try 没有异常 执行catch之后…
转载:http://shmilyaw-hotmail-com.iteye.com/blog/1881302 前言 想讨论这个话题有一段时间了.记得几年前的时候去面试,有人就问过我一个类似的问题.就是java thread中对于异常的处理情况.由于java thread本身牵涉到并发.锁等相关的问题已经够复杂了.再加上异常处理这些东西,使得它更加特殊. 概括起来,不外乎是三个主要的问题.1. 在java启动的线程里可以抛出异常吗? 2. 在启动的线程里可以捕捉异常吗? 3. 如果可以捕捉异常,对于…
一.异常定义 阻止当前方法或作用域继续执行的问题,称为异常 二.异常分析      所有不正常类都继承Throwable类,这个类主要有两个子类Error类和Exception类.Error指系统错误,比如内存溢出或者虚拟机异常,Error出现程序就彻底崩溃了,Exception一般是编码.环境出现问题.Exception其中的一个子类是RuntimeException(非检查异常),能给引起RuntimeException异常的情况有很多,比如空指针异常.数组越界.数据类型转换错误.算数异常(…
一.引言 根据JDK的文档我们能够找到异常所在的包:java.lang.Throwable中,Throwable是所有异常类的根类,error是错误,在java.lang.error中,而Exception是异常在java.lang.exception中能够找到 二.error概述 当发生error类错误的时候,我们需要联想到该错误的原因大多数都是跟虚拟机有关的问题,例如内存不够.虚拟机错误等信息.对于这些错误信息导致程序中断停止.这种行为仅靠修改代码本身是无法进行修复的,更多的建议是将程序终止…
Java中异常的分类 Java中的异常机制是针对正常运行程序的一个必要补充,一般来说没有加入异常机制,程序也能正常运营,但是,由于入参.程序逻辑的严谨度,总会有期望之外的结果生成,因此加入异常机制的补充,就是为了更好的处理意料之外的结果. 所有异常都继承与Exception类,但是异常本质上分为两种: 检查异常(CheckedException) 顾名思义,这个异常抛出来,我们可以抓住它(也就是传说中的try-catch-finally系列),这类异常通常是在设计者考虑之内的 .可处理异常,譬如…
根据Java虚拟机规范,虚拟机内存中除过程序计数器之外的运行时数据区域都会发生OutOfMemoryError(OOM),本文将通过实际例子验证分析各个数据区域OOM的情况.为了更贴近生产,本次所有例子都是通过调用接口触发,并使用jvisualvm工具监控tomcat内存进行分析. 一.Java堆溢出 Java堆主要用于存储对象和数组实例,只要不断创建对象或者数组,并且保证CG Roots(垃圾收集器对象)到对象之间有可达路径来避免垃圾回收机制清除这些对象,在对象数量到达最大堆的限制后就会产生内…
原创地址:http://www.cnblogs.com/Alandre/(泥沙砖瓦浆木匠),需要转载的,保留下! 文章宗旨:Talk is cheap show me the code. 大成若缺,其用不弊.大盈若冲,其用不穷.  <道德经-老子>最完满的东西,好似有残缺一样,但它的作用永远不会衰竭:最充盈的东西,好似是空虚一样,但是它的作用是不会穷尽的 Written In The Font 摘要: 异常处理概述 学习内容: 建议110: 提倡异常封装 建议111: 采用异常链传递异常 建议…
Tips 书中的源代码地址:https://github.com/jbloch/effective-java-3e-source-code 注意,书中的有些代码里方法是基于Java 9 API中的,所以JDK 最好下载 JDK 9以上的版本. 70. 对可恢复条件使用已检查异常,对编程错误使用运行时异常 Java提供了三种可抛出异常对象:已检查异常( checked exceptions).运行时异常(runtime exceptions)和虚拟机错误(errors).程序员们对什么时候使用每种…
Tips 书中的源代码地址:https://github.com/jbloch/effective-java-3e-source-code 注意,书中的有些代码里方法是基于Java 9 API中的,所以JDK 最好下载 JDK 9以上的版本. 异常 当充分发挥异常的优势时,它可以提高程序的可读性.可靠性和可维护性.如果使用不当,则会产生相反的效果.本章提供了有效使用异常的指南. 69. 仅在发生异常的条件下使用异常 有一天,如果你运气不好,你可能会偶然发现这样一段代码: // Horrible…
ERROR: Can't get master address from ZooKeeper; znode data == null   一定注意这只是问题的第一层表象,真的问题是: File /hbase/.tmp/hbase.version could only be replicated to 0 nodes instead of minReplica 网上很多都是叫用两种方式解决 stop/start  重启hbase 格式化 hdfs namenode -format,不能随随便便就格…
1. 概念 exception是“exceptional event”的缩写,是指执行程序中发生的事件,破坏了程序的正常执行流程.Java 异常处理机制使程序更加健壮易于调试,它可以告诉程序员三个问题:错误的类型.位置.原因,帮助程序员解决错误. 2. 类别 Throwable是Java所有异常类的顶级父类,只有这个类的对象(或者其子类对象)才能被异常处理机制识别,也就是说JVM或者throw语句抛出的异常必须是Throwable或者子类对象,catch语句处理的异常类也是如此. 整体上来看,J…
1 final, finally, finalize的区别. final 用于声明属性,方法和类,分别表示属性不可变,方法不可覆盖,类不可继承. 内部类要访问局部变量,局部变量必须定义成final类型,例如,一段代码…… finally是异常处理语句结构的一部分,表示总是执行. finalize是Object类的一个方法,在垃圾收集器执行的时候会调用被回收对象的此方法,可以覆盖此方法提供垃圾收集时的其他资源回收,例如关闭文件等.JVM不保证此方法总被调用 2运行时异常与一般异常有何异同? 异常表…
Java 中的异常和处理详解 原文出处: 代码钢琴家 简介 程序运行时,发生的不被期望的事件,它阻止了程序按照程序员的预期正常执行,这就是异常.异常发生时,是任程序自生自灭,立刻退出终止,还是输出错误给用户?或者用C语言风格:用函数返回值作为执行状态?. Java提供了更加优秀的解决办法:异常处理机制. 异常处理机制能让程序在异常发生时,按照代码的预先设定的异常处理逻辑,针对性地处理异常,让程序尽最大可能恢复正常并继续执行,且保持代码的清晰.Java中的异常可以是函数中的语句执行时引发的,也可以…
涉及到异常类相关的文章: (1)异常类不能是泛型的 http://www.cnblogs.com/extjs4/p/8888085.html (2)Finally block may not complete normally的问题,参考文章:https://www.cnblogs.com/extjs4/p/9375400.html (3)JLS https://docs.oracle.com/javase/specs/jls/se7/html/jls-11.html#jls-11.2 (4)关…
Java中异常提供了一种识别及响应错误情况的一致性机制,有效地异常处理能使程序更加健壮.易于调试.异常之所以是一种强大的调试手段,在于其回答了以下三个问题: 什么出了错? 在哪出的错? 为什么出错? 在有效使用异常的情况下,异常类型回答了“什么”被抛出,异常堆栈跟踪回答了“在哪“抛出,异常信息回答了“为什么“会抛出,如果你的异常没有回答以上全部问题,那么可能你没有很好地使用它们.有三个原则可以帮助你在调试过程中最大限度地使用好异常,这三个原则是: 具体明确 提早抛出 延迟捕获 为了阐述有效异常处…