Como suele ser el caso, mi posición sobre esta pregunta contradice el pensamiento convencional.
En general, ignoro el espacio fuera del disco de la misma manera que ignoro la falta de memoria. En parte porque es imposible predecir de manera confiable estas condiciones. En parte porque cuando hablamos del comportamiento del software en condiciones inesperadas (como un error que no sabe que tiene y que hace que se coma todo el disco o la memoria), es imposible razonar lo suficiente sobre la situación para codificarlo. Y PRUEBA. (Es seguro suponer que si tiene un código que no está probado, no funciona).
Sin embargo, hay condiciones específicas que indican un enfoque diferente:
Si usted está sosteniendo importante, el estado del usuario y sin guardar (como un archivo de texto con algunas modificaciones), considere pre-guardar los datos en el fondo, para que un choque sea recuperable más tarde.
Si está a punto de escribir en el disco en función de un comando de usuario interactivo (por ejemplo, Archivo-> Guardar), puede detectar un error y ofrecerles que lo intenten de nuevo.
En ambos casos, es importante que los errores se vean como errores. Los errores colapsados deberían colapsar. Capturar excepciones inesperadas y continuar silenciosamente le roba oportunidades de diagnóstico mientras deja su software en un estado inseguro.
El servidor SQL presumiblemente manejaría el error de bajo nivel al negarse a insertar más datos. Puede manejar eso con transacciones y reversiones en su SQL. –
@Sherm, buen punto. ¿Hay alguna manera de saberlo con anticipación? –
Eso sería propenso a una condición de carrera, donde verifique el espacio, descubra que tiene suficiente, y luego otra cosa usa el espacio antes de poder usarlo. –