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

我正在测试代码中的一些漏洞,并尝试通过在用户输入无效时抛出异常来修复它们。现在当我实现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)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值