el funcionamiento anormal java tratar de capturar la captura, hay reversión @Transactional puede guardar y hacer operaciones de actualización otra

I. Visión general: captura anormal, no creo que la captura no afectará a otro código que se ejecuta dentro de una transacción, si se trata de una excepción de tiempo de ejecución, unido a la parte trasera de gestión de transacciones, inserciones de bases de datos, las actualizaciones se pondrá en marcha como en otras operaciones.

1, el siguiente código, aunque con una captura intento de captura esa excepción (datos demasiado largo para la columna 'project_id_' en la fila 1), se imprimirá el registro (para capturar la excepción interna), al no ser fuera de la instrucción de actualización, pero todavía no tendremos éxito. Descripción de la operación se deshace.

	@Transactional
	public void testIsRoback() {
		try {
			this.executeSql();
			// 可以正常执行的sql,测试在executeSql()方法抛运行时异常后还能入库吗
			jdbcTemplate.update("INSERT INTO t_finance_zndb_log (id_,project_id_) value ('1','2')");
		} catch (Exception e) {
			System.out.println("+++++++++++++++++++捕获到外部异常了+++++++++++++++++++++++");
			e.printStackTrace();
		}

	}
	
	private void executeSql() {

		try {
			// 模拟运行时异常
			jdbcTemplate.execute("INSERT INTO t_finance_zndb_log (id_,project_id_) value ('1','222')");
		} catch (Exception e) {
			System.out.println("------------------捕获到内部异常了-----------------------");
			e.printStackTrace();
		}
	}

Aquí Insertar imagen Descripción
2, la situación anormal no es lo mismo si el tiempo no se corre. Aunque se puede ver la excepción interna capturado, pero la instrucción de inserción no se revierte, siendo guardado en la base de datos.
Aquí Insertar imagen Descripción
Aquí Insertar imagen Descripción

Publicado 10 artículos originales · ganado elogios 0 · Vistas 353

Supongo que te gusta

Origin blog.csdn.net/weixin_43137113/article/details/105144595
Recomendado
Clasificación