关于java代码中的异常理解

通过使用Java语言进行安卓开发的时候经常遇到一些异常,想用一种找孩子的方式进行简单的理解化转换。

1. java.lang.NullPointerException(空指针异常)

  调用了未经初始化的对象或者是不存在的对象

java.lang.FileNotFoundException

文件未找到异常

简单的说就是找不到孩子,解决方法就是首先要有一个孩子,没有孩子就生一个(创建对象),孩子要求是活的(没有空值判断的情况下,要给对象赋值),

孩子在哪搞清楚(对象要引用正确,地址是对的),这样基本孩子应该能找到了。

2. java.lang.ClassNotFoundException  

指定的类不存在(或者指定的变量不存在,指定的方法不存在,主要原因是没有创建,或者创建后地址(名称)不对,所有找不到)

简单的说你要找一个有3只眼睛的孩子,因为没有这种类型的孩子,所以你无法肯定能生一个三只眼的孩子(无法创建对象)。解决方法,首先确定是不是3只眼睛的孩子,如果是2只眼睛的孩子,是普通孩子,只要引用人类就可以创建(已有的类可以进行对象的创建)

3. java.lang.NumberFormatException

字符串转换为数字异常

java.lang.ClassCastException

数据类型转换异常

简单来说就是你要把一棵树变成你的孩子,因为他们的类型不同,所以无法转换,解决方法是要么不转换,要么寻找正确的方法转换,或者自己创造转换方法,(就像如果你是科学家,你可以发明把树转换为人的方法,呵呵)

4. java.lang.IndexOutOfBoundsException

数组下标越界异常

简单来说就是你把你的孩子放在你家的卧室,你却在厕所找,你寻找的范围出错了,所以找不到,解决方法是明确范围,只在范围内查找

5. java.lang.IllegalArgumentException

方法的参数错误

简单来说就是你给你的孩子喂瓶子吃,因为你的孩子吃的是食物(传入参数的类型),而塑料瓶不是食物,所以孩子吃瓶子发生错误,解决方法是首先明确孩子吃的是什么类型(这里是食物),确定你给孩子的是食物(确定传入参数的类型),才进行喂食物的行为(调用方法)。

6. java.lang.IllegalAccessException

没有访问权限

简单的说就是你在别人家里找孩子,因为你没有权利进入别人家里,(没有访问权限)所以是错误的,解决方法(1)不进入别人家里(没有访问权限的不访问)(2)经过别人同意后,进入别人家里(修改访问权限,拥有访问权限)

7. java.lang.ArithmeticException

数学运算异常

简单的说就是你直接让你的孩子凭空消失,因为不符合物理规律(不符合数学运算规则),所以出错

还有一些其他的异常,后面有时间继续整理,关于这些异常只是自己的理解,有不到位的地方希望和各位共同交流,一起进步。

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-08-29 20:47:08

关于java代码中的异常理解的相关文章

Java thread中对异常的处理策略

转载:http://shmilyaw-hotmail-com.iteye.com/blog/1881302 前言 想讨论这个话题有一段时间了.记得几年前的时候去面试,有人就问过我一个类似的问题.就是java thread中对于异常的处理情况.由于java thread本身牵涉到并发.锁等相关的问题已经够复杂了.再加上异常处理这些东西,使得它更加特殊. 概括起来,不外乎是三个主要的问题.1. 在java启动的线程里可以抛出异常吗? 2. 在启动的线程里可以捕捉异常吗? 3. 如果可以捕捉异常,对于

java学习中,异常和错误的简介、捕获异常、抛出异常、自定义异常(java 学习中的小记录)

java学习中,异常和错误的简介.捕获异常.抛出异常.自定义异常(java 学习中的小记录)作者:王可利(Star·星星) 异常:(API 的 java.lang 有一个异常,有很多很多) 在Java程序中也会程序出现不正常的情况,这个就叫异常.     Java是面向对象的语言,任何事物都可以用类来描述,同样的异常也是一种事物.Java中提供了很多的异常类.     多个异常堆积起来,就是一个异常体系.   Throwable:是异常类的父类,超类.Exception 异常.error错误.

Android如何在java代码中设置margin

习惯了直接在xml里设置margin(距离上下左右都是10dip),如: <ImageView android:layout_margin="10dip" android:src="@drawable/image" /> 只是有些情况下,需要在java代码里来写. API中,android.view.ViewGroup.MarginLayoutParams有个方法setMargins(left, top, right, bottom).可是View本身没

java代码中获取进程process id(转)

另一方面,线程ID=进程ID+内部线程对象ID并不成立,    参考: blog.csdn.net/heyetina/article/details/6633901     如何在java代码中获取进程process id, 实现方法如下所示:    参考: rednaxelafx.iteye.com/blog/716918 http://www.cnblogs.com/mumuxinfei/p/3678854.html

【安卓】在java代码中设置drawableLeft时如何给定合适尺寸?

textView.setCompoundDrawables(drawable, null, null, null);时看不到图片,是因为需要手动给定drawable对应的尺寸,即用drawable.setBounds. 如果该drawable为图片,可直接drawable.setBounds(0,0,drawable.getIntrinsicWidth(),drawable.getIntrinsicHeight());. 即直接给定图片自身尺寸,此时效果和在xml中给定一样. [安卓]在java

如何在java代码中调用一个web项目jsp或者servlet

有时候需要调用一个web项目的jsp或者servlet,但是执行内部的代码,并不是打开jsp,例如需要在一段java代码中清除一个web项目中的缓存,那么可以把清除缓存的代码放在该web项目的一个servlet中,只需要执行如下代码: URL url = new URL("http://192.168.2.123:8080/sace/ClearCache"); url.openStream(); openStream() 执行一次相当于一次URL请求,其中url.openStream(

Java代码中获取Json的key值

测试json字符串: {"access_token":"hkbQl5o_l67dZ7_vJRATKBwTLk9Yj5QyMuOJThAr8Baj0xWf4wxW1p4ym4iTZ3-ptWRRoVtbCNJnyjGLfed_4bB0HiqGP8v-aXOJUUk1tFs","expires_in":7200,"refresh_token":"_or_31yEp8XhxGWvrAzdWIkXfFlKjfb3iTRpfa

Spring MVC框架下在java代码中访问applicationContext.xml文件中配置的文件(可以用于读取配置文件内容)

<bean id="propertyConfigurer" class="com.****.framework.core.SpringPropertiesUtil" lazy-init="false"> <property name="locations"> <list> <value>classpath:config/sys.properties</value> &

关于在Java代码中写Sql语句需要注意的问题

最近做程序,时不时需要自己去手动将sql语句直接写入到Java代码中,写入sql语句时,需要注意几个小问题. 先看我之前写的几句简单的sql语句,自以为没有问题,但是编译直接报错. 1 String str = "insert into XXX(a,b,c) values ('"a.getA()"','"a.getB()"','"a.getC()"');"; 研究了半天发现应该是连接字符串问题,第一次修改过后将赋值字段前后加“