我正在测试代码中的一些漏洞,并尝试通过在用户输入无效时抛出异常来修复它们。现在当我实现try-catch并在我的手机上运行应用程序时,当我输入无效输入时它会崩溃。

我认为我的代码没有从addData方法中捕获异常。是否有另一种方法来实现异常,或者如何才能从addData方法中捕获异常?

package com.odisee.photoboothapp;

import android.support.v7.app.AppCompatActivity;

import android.os.Bundle;

import android.view.View;

import android.widget.Button;

import android.widget.RadioButton;

import android.widget.RadioGroup;

import android.widget.EditText;

import android.widget.Toast;

import com.odisee.photoboothapp.fontchanger.FontChangeTextView;

public class Form_Database extends AppCompatActivity {

DatabaseHelper myDb;

int selectedId;

RadioGroup test;

RadioButton editEducation;

EditText editName, editSurname, editEmail;

Button btnAddData;

@Override

protected void onCreate(Bundle savedInstanceState) throws IllegalArgumentException {

super.onCreate(savedInstanceState);

getSupportActionBar().hide();

setContentView(R.layout.activity_form__database);

myDb = new DatabaseHelper(this);

test = (RadioGroup)findViewById(R.id.radioButtonChoice);

editName = (EditText)findViewById(R.id.edit_Name);

editSurname = (EditText)findViewById(R.id.edit_Surname);

editEmail = (EditText)findViewById(R.id.edit_Email);

btnAddData = (Button)findViewById(R.id.btnSend);

try {

addData();

}

catch(IllegalArgumentException e) {

Toast.makeText(Form_Database.this,"Data not inserted" + e.getMessage(),Toast.LENGTH_LONG).show();

}

}

public void addData() {

btnAddData.setOnClickListener(

new View.OnClickListener() {

@Override

public void onClick(View v) {

if(editName.getText().toString().contains("DROP")) {

throw new IllegalArgumentException("SQL Exceptie!");

}

else {

selectedId = test.getCheckedRadioButtonId();

editEducation = (RadioButton)findViewById(selectedId);

boolean isInserted = myDb.insertData(editName.getText().toString(), editSurname.getText().toString(), editEmail.getText().toString(), editEducation.getText().toString());

sendEmail();

if(isInserted == true) {

Toast.makeText(Form_Database.this,"Data inserted",Toast.LENGTH_LONG).show();

}

else {

Toast.makeText(Form_Database.this,"Data not inserted",Toast.LENGTH_LONG).show();

}

}

}

}

);

}

public void sendEmail() {

//Getting content for email

String email = editEmail.getText().toString();

String subject = "testberichtje voor lorenzo";

String message = "testberichtje voor lorenzo";

//Creating SendMail object

SendMail sm = new SendMail(this, email, subject, message);

//Executing sendmail to send email

sm.execute();

}

}

05-01 17:58:17.021 30232-30232 / com.odisee.photoboothapp E / AndroidRuntime:FATAL EXCEPTION:main

过程:com.odisee.photoboothapp,PID:30232

java.lang.IllegalArgumentException:SQL Exceptie!

在com.odisee.photoboothapp.Form_Database $ 1.onClick(Form_Database.java:55)

在android.view.View.performClick(View.java:5697)

在android.widget.TextView.performClick(TextView.java:10826)

在android.view.View $ PerformClick.run(View.java:22526)

在android.os.Handler.handleCallback(Handler.java:739)

在android.os.Handler.dispatchMessage(Handler.java:95)

在android.os.Looper.loop(Looper.java:158)

在android.app.ActivityThread.main(ActivityThread.java:7224)

at java.lang.reflect.Method.invoke(Native Method)

在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:1230)

在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)

android studio try catch自动生成,Android Studio:Try-catch异常崩溃了应用程序相关推荐

  1. android 默认dimens_Android开发——自动生成Android屏幕适配的dimens.xml文件

    使用dimens.xml解决屏幕适配问题是Android官方解决方案,本文主要讲述了如何自动生成Android屏幕适配的dimens.xml,减少了工作量,在维护dimens.xml文件时更加省时省力 ...

  2. Android Studio的res自动生成的文件出错了_莫韵乐与bug的奇妙冒险

    Android Studio的res自动生成的文件出错了_莫韵乐与bug的奇妙冒险 无论学什么编程语言都要跟奇怪的bug过不去 奇怪的bug出现了 今天满怀欣喜地进行安卓开发学习,创建好一个新的项目之 ...

  3. BuildIt: Visual Studio .NET 的自动生成工具

    为什么80%的码农都做不了架构师?>>>    用 Visual Studio.NET 和 Visual SourceSafe 进行团队开发 http://msdn.microsof ...

  4. 自定义Android注解Part2:代码自动生成

    上一期我们已经把butterknife-annotations中的注解变量都已经定义好了,分别为BindView.OnClick与Keep. 如果你是第一次进入本系列文章,强烈推荐跳到文章末尾查看上篇 ...

  5. 使用Visual Studio宏来自动生成代码 [ Visual Studio | 宏 | 自动生成代码 ]

    前言 宏的定义:是组合到一起形成一个命令以自动完成某项任务的一系列命令和指令.(MSDN) 在使用Visual Studio宏实现JS折叠功能的时候就想过用它来实现代码自动生成,有了前面的基础,实现起 ...

  6. 自动生成Android界面,面向Android的Web Service界面自动生成技术研究

    摘要: 据统计,开发人员在开发应用程序的过程中,接近一半的代码用于用户界面部分,大约一半的运行时间用于执行这一部分.所以,减少用户界面部分的开发代码和运行时间,能有效提高程序的运行效率.智能家居中,由 ...

  7. Microsoft Visual Studio Learning Pack 自动生成流程图插件(转)

    最近写文档,要贴流程图,自己画太烦,就到网上去找自动生成流程图的软件,结果知道了这个叫 Microsoft Visual Studio Learning Pack 的插件,用它来生成函数的流程图,感觉 ...

  8. android生成大分辨率图片,自动生成Android不同分辨率下的图片

    转自: http://blog..net/offbye/article/details/50012605 Android屏幕分辨率适配的图标处理比较麻烦,让UI做不同尺寸的图片也挺浪费时间的,并且容易 ...

  9. 基于OpenAPI Specification自动生成Android客户端代码

    OpenAPI Specification(OAS) 无论你从事前端开发还是后端开发,或多或少都听说过Swagger. Swagger Specification 是一种 API Specificat ...

最新文章

  1. 美国政府机构成为接受比特币和比特现金支付税金的政府机构
  2. 会话管理隐患与防御 总结
  3. TestInside640-801 v11(神州testv11)题库视频讲解(全部上传完毕)
  4. matlab红字怎么删除,购买方开具红字信息表如何作账务?
  5. Linux 信号量 源码,一文读懂go中semaphore(信号量)源码
  6. Swagger 注解~用于方法
  7. JSP、Servlet中get请求和post请求的区别总结
  8. 使用php递归计算目录大小
  9. Ovito中多晶材料晶粒分析方法介绍
  10. 纯手工获取的WINDOWS 7 32位 SP1后续补丁集ver201509的官方下载地址
  11. 前端Echarts数据可视化
  12. div两侧的boder断开 消失 奇怪
  13. 加州大学洛杉玑分校计算机专业,加州大学洛杉矶分校计算机科学世界排名2019年最新排名第12(THE世界排名)...
  14. 【滴滴拉屎】一款能按照坑型找厕所的神器!
  15. 8255芯片控制发光二极管模拟步进电机汇编实验
  16. 中国十大电子商务网站排名揭晓
  17. KKT条件的物理意义(转)
  18. JS_Gallary
  19. 机器学习作业-交通流量预测综述
  20. Base64 混淆加密+迭代次数,Base64前后端加解密不一致、Base64 js加解密结果与java加解密结果不一致,Base64中文加密乱码

热门文章

  1. 高级API 快速入门之第七章 本地模拟下载文件
  2. 自动摘要生成(二):由PageRank转变而来的TextRank算法
  3. Android蓝牙开发音频焦点
  4. Netty实现聊天室
  5. Redis key前缀的设计与使用
  6. Zookeeper重要概念
  7. 我来告诉大家一些无耻的电脑知识
  8. java.lang.IllegalAccessException 没有访问权限
  9. GSM与GPRS区别介绍
  10. 详解如何在vue项目中使用lodop打印插件,以及样式打印预览缺失的问题(底部)