异常

Java异常架构

天大地大妈咪最大 提交于 2019-12-03 00:02:35
Java异常简介   Java异常是Java提供的一种识别及响应错误的一致性机制。   Java异常机制可以使程序中异常处理代码和正常业务代码分离,保证程序代码更加优雅,并提高程序健壮性。在有效使用异常的情况下,异常能清晰的回答 what, where, why 这3个问题:异常类型回答了“什么”被抛出,异常堆栈跟踪回答了“在哪“抛出,异常信息回答了“为什么“会抛出。 Java异常机制用到的几个关键字: t ry、catch、finally、throw、throws。 • try -- 用于监听。将要被监听的代码(可能抛出异常的代码)放在try语句块之内,当try语句块内发生异常时,异常就被抛出。 • catch -- 用于捕获异常。catch用来捕获try语句块中发生的异常。 • finally -- finally语句块总是会被执行。它主要用于回收在try块里打开的物力资源(如数据库连接、网络连接和磁盘文件)。只有finally块,执行完成之 后,才会回来执行try或者catch块中的return或者throw语句,如果finally中使用了return或者throw等终止方法的语句, 则就不会跳回执行,直接停止。 • throw -- 用于抛出异常。 • throws -- 用在方法签名中,用于声明该方法可能抛出的异常。 下面通过几个示例对这几个关键字进行简单了解。 示例一:

JAVA 的异常那些事

人走茶凉 提交于 2019-11-29 10:12:01
异常的概念 异常指不期而至的各种状况,如:文件找不到、网络连接失败、非法参数等。异常是一个事件,它发生在程序编译或运行期间,干扰了正常的指令流程。 Java中的Throwable类是所有异常的基类。它的的众多子类描述各种不同的异常。因而,Java异常都是对象,是Throwable子类的实例,描述了出现在一段编码中的 错误条件。当条件生成时,错误将引发异常。 Java异常类层次结构及概念 Throwable Throwable 类是 Java 语言中所有错误或异常的超类 异常与错误 注意:异常和错误的区别:异常能被程序本身可以处理,错误是无法处理。 1 Exception 类及其子类用来处理程序错误,它指出了合理的应用程序想要捕获的条件,表示程序本身可以处理的异常 2 Error 是及其子类用来处理系统错误,表示仅靠程序本身无法恢复的严重错误,用于指示合理的应用程序不应该试图捕获的严重问题,Java编译器不去检查这类异常 运行时异常 RuntimeException 类及其子类表示“JVM 常用操作”引发的错误。例如,若试图使用空值对象引用、除数为零或数组越界,则分别引发运行时异常(NullPointerException、ArithmeticException)和 ArrayIndexOutOfBoundException。 可查异常 和 不可查异常 通常,Java的异常

Cygwin运行nutch报错:Failed to set permissions of path

不羁的心 提交于 2019-11-29 09:04:07
错误信息: Exception in thread "main" java.io.IOException:Failed to set permissions of path:\tmp\hadoop-ysc\mapred\staging\ysc-2036315919\.staging to 0700 官方BUG参考: https://issues.apache.org/jira/browse/HADOOP-7682 解决方法: 1、下载并解压 http://archive.apache.org/dist/hadoop/common/hadoop-1.1.2/hadoop-1.1.2.tar.gz 2、修改hadoop-1.1.2\src\core\org\apache\hadoop\fs\FileUtil.java,搜索 Failed to set permissions of path,找到689行,把throw new IOException改为LOG.warn 3、修改hadoop-1.1.2\build.xml,搜索autoreconf,移除匹配的6个executable="autoreconf"的exec配置 4、下载解压ant,将ant目录下的bin目录加入环境变量path 5、在Cygwin命令下行切换到hadoop-1.1.2目录,执行ant 6

maven jetty java.lang.OutOfMemoryError: PermGen...

走远了吗. 提交于 2019-11-28 22:50:42
可参考的解决方案: 下面是在pom.xml中的jetty plugin直接添加如下,貌似不可行的。 (为什么是貌似?因为我学习的那个项目本来是出现了上诉的异常,我就在pom.xml中设置了如下内容,接着运行项目可以正常跑起来。但是后来我发现可能不是因为进行如下设置的而解决的,具体可以参考我在stackoverflow问题截图) 参考stackoverflow的问题 接下来的问题是如何对" MAVEN_OPTS "进行设置呢? 《Maven实战》这本书的是这么讲的 而M2_HOME在环境变量中是如下进行设置的 难道我们在环境变量中如此学模子添加 " MAVEN_OPTS "?迟点是说,在此留作参考。 stackoverflow上可作为问题参考的链接: 1、 http://stackoverflow.com/questions/18669345/maven-jetty-plugin-outofmemoryerror-when-sharing-instance-between-two-web-apps 2、 http://stackoverflow.com/questions/20514565/java-lang-outofmemoryerror-permgen-space-in-embeded-jetty 3、csdn一篇博文的解决方案 http://blog.csdn.net

Django REST framework的各种技巧——6.异常处理

ε祈祈猫儿з 提交于 2019-11-28 15:42:19
restframework内置了基本的异常处理,然而并不够用 Django REST framework的各种技巧【目录索引】 异常处理应该考虑的事情 异常时为了保持api的一致,应该返回json error_code 给开发看的error_message 给用户看的message 开始怼代码 源码中的异常处理,可见是不符合需求的。 def exception_handler(exc, context): """ Returns the response that should be used for any given exception. By default we handle the REST framework `APIException`, and also Django's built-in `Http404` and `PermissionDenied` exceptions. Any unhandled exceptions may return `None`, which will cause a 500 error to be raised. """ if isinstance(exc, exceptions.APIException): headers = {} if getattr(exc, 'auth_header', None): headers[

lucene4.0与IKAnalyzer2012_u6的冲突

这一生的挚爱 提交于 2019-11-28 14:44:55
在网上下载了lucene当前最新版本4.0,以及IKAnalyzer中文分词器的完整发布包。 一起运行之后发现异常: java.lang.VerifyError: class org.wltea.analyzer.lucene.IKAnalyzer overrides final method tokenStream.(Ljava/lang/String;Ljava/io/Reader;)Lorg/apache/lucene/analysis/TokenStream; at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java:621) at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124) at java.net.URLClassLoader.defineClass(URLClassLoader.java:260) at java.net.URLClassLoader.access$000(URLClassLoader.java:56) at java.net.URLClassLoader$1.run(URLClassLoader

UIViewControllerHierarchyInconsistencyException异常

北城余情 提交于 2019-11-28 12:37:33
IOS中的MVC MVC模式是一种经典的软件架构模式,基本上懂程序设计的人都了解或应用过MVC模式。多数面向对象的程序设计架构都得益于MVC模式来有效的划分程序中的对象的角色,组织对象之间的耦合关系(MVC的具体定义和描述可以参见 维基百科 ),Cocoa Touch提供了IOS的开发环境,包含了诸多基础类库和框架,其中UIKit框架提供并实现了MVC模式。在IOS中UIViewController表示控制器,UIView代表视图。每一个UIViewController对象中都拥有一个view属性用以管理一组UIView对象。做过IOS开发的人都知道,一个Application的记载过程都伴随着两个对象树结构的生成,一个是控制器树形结构,另一个是视图树形结构,在UIViewController的viewDidLoad方法中,我们可以创建多个子控制器,并将子控制器下的view对象添加至父控制器的view对象中,这样依次迭代最终会完成两个对象树的创建。如图 其实,做过前端开发的人都看的出来,图中的controller的树结构和view的树结构,单独拿出一个来都和DOM的树结构类似,都是父与子,兄弟与兄弟之间的关系。 异常的出现 前面简单的描述了一下controller树和view树,其实这里面是有一点规定的,即:controller的树节点必须与view的树节点在层次结构上保持一致