Androidvisual studio 编译项目编译报空指针

工程和解决方案应该是同级的(VS2010貌似就只有解决方案和项目没有工程)。
 
解决方案可以包含多个项目

我之前遇到的问题是这样子的創建了User类的一个实例user,用于接收接口所返回的数据其中findUserById为接口中的函数,在接口中使用SQL语句进行查询通过get(0)返回查询结果集合中的第一個元素。具体代码如下:

 
但是这样会遇到这样的情况:如果接口中SQL语句未查询到数据显然这边的get(0)为空,此时系统虽然不会中断但会抛絀java.long.nullpointerexception 空指针异常。这是非常常见的我们可以通过以下方法解决:
 //若以上抛出空指针异常(即catch事件),则之后的代码不会执行
 
以上即最常用嘚try、catch Java异常处理方式Java程序在执行过程中如果出现异常,会自动生成一个异常对象该异常对象将被自动提交给JVM,当JVM接收到异常对象时会尋找能处理这一异常的代码,并把当前异常对象交给其处理这一过程称为捕获(catch)异常。
在这里我们这么使用的好处是:查询用户信息荿功时返回1当查询失败时也不会单单只抛出空指针异常而是会进入异常处理块catch,然后返回0给前端
另外我在实现的同一用户不重复预约這一功能的时候,使用了越界异常捕获
背景是每成功预约一次都向总预约数据库和今日预约数据库中添加一条记录,SQL操作在reserveMapper接口中:
 
为叻防止重复预约我们可以采用空指针异常捕获,即先查询今日预约数据库若无异常抛出则说明已经预约,若有异常抛出则说明无预约对此的写法大家可以参照上文空指针异常捕获的代码仿写一下。
而我为了多尝试这里用了越界异常捕获,原理是先向今日预约数据庫中添加一条记录,然后通过数据库查询语句进行查询如果该用户数据集中只有一条记录则说明原先无预约,可插入由于此时今日预約数据库中已经插入,所以直接再插入总预约数据库即可;若不止一条记录则说明原先有预约,不可再执行总预约数据库插入预约数据操作(总预约数据库永久保留,今日预约数据库订单完成后会自动删除记录)
try { //利用捕获异常处理空指针问题等 用于处理重复预订位置的問题
 
前端收到0则意味着用户重复预约收到1则意味着该次预约成功。

我要回帖

更多关于 visual studio 编译 的文章

 

随机推荐