我想知道是否有任何方法可以使用其子方法突破main方法,但不会抛出异常或返回布尔值。
例如
public void foo()
{
System.out.print("Trying to break out foo");
validate1();
validate2();
validate3();
System.out.print("Validation success");
}
public void validate1()
{
//todo: break out foo() if validation failed
}
public void validate2()
{
//todo: break out foo() if validation failed
}
public void validate3()
{
//todo: break out foo() if validation failed
}
foo()中没有if( validate1() ) return;
。
无需抛出 validate1(), validate2(), validate3()。
这可能吗?
答案 0 :(得分:-1)
没有这样的方法。您必须得到对您的调用方法的响应,然后中断调用方法。
from flask import Flask, jsonify
from flask.ext.mysqldb import MySQL
app = Flask(__name__)
app.config['MYSQL_HOST'] = '127.0.0.1'
app.config['MYSQL_USER'] = 'root'
app.config['MYSQL_PASSWORD'] = 'password'
app.config['MYSQL_DB'] = 'hello_db'
mysql = MySQL(app)
@app.route('/hello')
def index():
cur = mysql.connection.cursor()
cur.execute('''SELECT * FROM Users WHERE id=1''')
rv = cur.fetchall()
payload = []
content = {}
for result in rv:
content = {'id': result[0], 'username': result[1], 'password': result[2]}
payload.append(content)
content = {}
return jsonify(payload)
if __name__ == '__main__':
app.run(debug=True)
但是,如果您希望程序结束,那么您只需执行
即可public void foo()
{
System.out.print("Trying to break out foo");
if(!validate1()) {
return;
}
if(!validate2()) {
return;
}
....
System.out.print("Validation success");
}
public boolean validate1()
{
try{
....
if(...) {
}
} catch(Exception e) {
//Don't throw exception. Instead just return false.
return false;
}
// no errors and validation passed
return true;
}