Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/324.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如果总和更大,则创建异常_Java_Android_Sql - Fatal编程技术网

Java 如果总和更大,则创建异常

Java 如果总和更大,则创建异常,java,android,sql,Java,Android,Sql,我想破例,但我不知道怎么做。 如果记录中的值之和大于总数100000,则不要这样做 buttonPurchase.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { ShoppingDAO shoppingDAO =

我想破例,但我不知道怎么做。 如果记录中的值之和大于总数100000,则不要这样做

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)
,但是我需要把记录的总和放在表上。你能给我举个例子吗?我同意,我想说的是,如果是条件导致异常的可能性很高,您应该将其设计为避免调用异常。如文所述: