Java 如果总和更大,则创建异常
我想破例,但我不知道怎么做。 如果记录中的值之和大于总数100000,则不要这样做Java 如果总和更大,则创建异常,java,android,sql,Java,Android,Sql,我想破例,但我不知道怎么做。 如果记录中的值之和大于总数100000,则不要这样做 buttonPurchase.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { ShoppingDAO shoppingDAO =
buttonPurchase.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
ShoppingDAO shoppingDAO = new CompraDAO(getApplicationContext());
String amount = textTotal.getText().toString();
carros.setAmount(amount);
carros.setId_car(id);
SQLiteDatabase db = openOrCreateDatabase("DB_SHOPPING", MODE_PRIVATE, null);
Cursor c = db.rawQuery("SELECT * FROM shopping where id_car="+id, null);
Cursor c2 = db.rawQuery("SELECT SUM(price * amount) FROM shopping;", null);
if(c.getCount()>0) {
Toast.makeText(getApplicationContext(), "This purchase was made.", Toast.LENGTH_LONG).show();
} else {
if (c2.equals(100000)) {
Toast.makeText(getApplicationContext(), "You have reached the maximum amount of purchases.", Toast.LENGTH_LONG).show();
} else {
if (compraDAO.salvar(carros)) {
Toast.makeText(getApplicationContext(), "Purchase saved successfully.", Toast.LENGTH_LONG).show();
} else {
Toast.makeText(getApplicationContext(), "Error saving.", Toast.LENGTH_LONG).show();
}
}
}
c.close();
}
});
在代码中,只需更新if/else逻辑
if(c.getCount()>0 && c2.intValue() < 100000){
Toast.makeText(getApplicationContext(), "This purchase was made.", Toast.LENGTH_LONG).show();
} else {
if(c2.intValue() >= 100000){
Toast.makeText(getApplicationContext(), "You have reached the maximum amount of purchases.", Toast.LENGTH_LONG).show();
}
...
...
}
if(c.getCount()>0&&c2.intValue()<100000){
Toast.makeText(getApplicationContext(),“此购买已完成”,Toast.LENGTH\u LONG.show();
}否则{
如果(c2.intValue()>=100000){
Toast.makeText(getApplicationContext(),“您已达到最大购买量。”,Toast.LENGTH_LONG).show();
}
...
...
}
好吧,我了解到创建自定义异常不是一个好的做法,因为如果你知道异常,你应该阻止它,但是,其他人回答了方法,所以你可以这样做。如果(c2.getCount>100000)抛出新的MyException()代码>我尝试过这样做。但是我仍然可以买。你的问题可能与sql有关。更新你的if语句if(c.getCount()>0&&c2.intValue()<100000)
,但是我需要把记录的总和放在表上。你能给我举个例子吗?我同意,我想说的是,如果是条件导致异常的可能性很高,您应该将其设计为避免调用异常。如文所述: