可用性战术:阻止错误发展为故障,或者至少能够把错误的影响限制在一定范围内,从而使系统恢复成为可能。
可用性战术分类:
错误检测:
在代码层面我们要重视错误检测,在可能会出现错误的地方多使用错误检测方法中的异常来处理程序,将错误在语义上转换为可以被处理的形式多使用try/catch等来判断是否有错误,然后设计一些方式在错误出现后能够使系统很快的恢复正常供用户使用。
比如连接数据库的代码使用了很多try/catch来判断:
public class DBUtil{ public static String db_url="jdbc:mysql://localhost:3306/xinfang?useUnicode=true&characterEncoding=UTF-8&serverTimezone=GMT"; public static String db_user="root"; public static String db_password="password"; public static Connection getConn() { Connection conn=null; try { Class.forName("com.mysql.cj.jdbc.Driver"); conn=DriverManager.getConnection(db_url, db_user, db_password); System.out.println("连接数据库成功"); }catch(Exception e) { System.out.println("连接数据库失败"); e.printStackTrace(); } return conn; } public static void close(Connection conn) { if(conn!=null) { try { conn.close(); } catch (SQLException e) { e.printStackTrace(); } } } public static void close(Statement state,Connection conn) { if(state!=null) { try { state.close(); } catch (SQLException e) { e.printStackTrace(); } } if(conn!=null) { try { conn.close(); } catch (SQLException e) { e.printStackTrace(); } } } public static void close(ResultSet rs, Statement state, Connection conn) { if(rs!=null) { try { rs.close(); } catch (SQLException e) { e.printStackTrace(); } } if(state!=null) { try { state.close(); } catch (SQLException e) { e.printStackTrace(); } } if(conn!=null) { try { conn.close(); } catch (SQLException e) { e.printStackTrace(); } } } }
热词分析系统:
当输入的热词没有的时候,系统不应该进入下一个页面,如果进入了下一个页面就应该是错误。应该用try/catch判断当热词没有的时候应该弹出提示框热词暂无,而我的代码没有。
错误恢复:
当整个系统出现致命错误的时候,可以使用代码提示用户页面崩溃是否重新加载页面,从而使系统回到正常使用的状态,达成错误恢复。
错误预防:
对本系统的热词查询步骤进行绑定形成事务,以确保用户按正常的步骤使用本系统,防止错误的发生。
六大质量属性——以“信息领域热词分析系统”为例可用性代码层面描述
原文:https://www.cnblogs.com/quyangzhangsiyuan/p/12397122.html