Foros del Web » Programando para Internet » PHP »

try catch obligatorio ?

Estas en el tema de try catch obligatorio ? en el foro de PHP en Foros del Web. Normalmente las conexiones tienen un Try and Cath. En resumen es aquello que try ( si funciona ) catch ( si no funciona) La pregunta ...
  #1 (permalink)  
Antiguo 12/05/2012, 10:06
(Desactivado)
 
Fecha de Ingreso: agosto-2011
Mensajes: 327
Antigüedad: 13 años, 2 meses
Puntos: 3
try catch obligatorio ?

Normalmente las conexiones tienen un Try and Cath.

En resumen es aquello que try ( si funciona ) catch ( si no funciona)

La pregunta es, para conectarse al mysql des de php es importante hacer try an catch ?






Sin try catch

$con = mysql_connect("localhost","root","");

if (!$con ) {
die('Could not connect: ' . mysql_error());
}
$consulta = "select "
mysql_query($consulta) or print("error: ".mysql_error() );





Con try catch

try {
+ sus conexiones
}
catch(){
+ mensajes de error etc..

Que es más importante y que no ?

Es decir si haría falta el try catch y porque
  #2 (permalink)  
Antiguo 12/05/2012, 10:26
Avatar de oscartt67  
Fecha de Ingreso: abril-2012
Ubicación: fonollosa
Mensajes: 481
Antigüedad: 12 años, 7 meses
Puntos: 97
Respuesta: try catch obligatorio ?

Necesario necesario no es.
Pero sí aconsejable y util para gestionar los errores.

La ventaja que te ofrece try/catch es que puedes personalizaqr extendiendo las excepciones de error, y no te digo más porque de eso, solo me sé el título.

Saludos.
  #3 (permalink)  
Antiguo 12/05/2012, 12:14
Avatar de Vector_Latino  
Fecha de Ingreso: mayo-2012
Mensajes: 25
Antigüedad: 12 años, 6 meses
Puntos: 6
Respuesta: try catch obligatorio ?

Yo pienso que no hay necesidad de usar el try and catch, siempre y cuando manejes correctamente los resultados que te dan las funciones para la conexión todo estará bien, por ejemplo:

Para hacer la conexion al servidor MySQL:
Código PHP:
$link = @mysql_connect('localhost''mysql_user''mysql_password'); 
Siempre va a devolver un identificador de enlace a MySQL en caso de éxito o FALSE en caso de error.

Para hacer la conexion a la Base de Datos:
Código PHP:
$db_selected = @mysql_select_db('Mi_Base_De_Datos'$link); 
Siempre va a devolver TRUE en caso de éxito o FALSE en caso de error.

El símbolo de @ antes de la función seria para no mostrar mensajes en caso de que ocurriese algún error.

el codigo completo seria:

Código PHP:
<?php

$link 
= @mysql_connect('localhost''mysql_user''mysql_password');
if (!
$link) {
    die(
'No se pudo conectar al servidor MySQL : ' mysql_error());
}

// Se conecta a la Base de Datos especificada.
$db_selected = @mysql_select_db('Mi_Base_De_Datos'$link);
if (!
$db_selected) {
    die (
'No se pudo conectar a la base de datos : ' mysql_error());
}
?>
Este seria el código para controlar los errores en la conexión si usar el try and catch, de echo siempre he usado este método.

Saludos.
  #4 (permalink)  
Antiguo 12/05/2012, 13:39
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años, 7 meses
Puntos: 461
Respuesta: try catch obligatorio ?

Meto un poco mi nariz acá, el usar try y catch no es obligatorio, pero como es útil, y es algo que los desarrolladores PHP deberíamos empezar a implementar, PHP a partir de su versión 5 tiene soporte para objetos y debemos utilizar todas las ventajas de este paradigma. Un try y un catch no es si funciona o no funciona es una manera de trabajar o manejar las excepciones que te manden el interprete de php, una excepción es considerado un error o algo que no debería ocurrir en un código sea cual sea el lenguaje, entonces si vemos try en ingles es trata catch es captura entonces poniendo un simple ejemplo con conexiones como el siguiente
Código PHP:
Ver original
  1. $dsn = 'mysql:dbname=testdb;host=127.0.0.1';
  2. $user = 'dbuser';
  3. $password = 'dbpass';
  4. try {
  5.     $dbh = new PDO($dsn, $user, $password);
  6. } catch (PDOException $e) {
  7.     echo 'Connection failed: ' . $e->getMessage();
  8. }

sencillamente le decimos trata de conectar al server mysql, si ocurre una excepcion capturala y muestra el mensaje (o bien puedes hacer otra cosa con el), entonces es obligatorio?? no pero como es necesario en mi opinión y creo que en la de muchos otros, sino no existieran.

Vector_Latino el hecho de ocultar un error no lo corrige solo no lo muestra y en mi opinión personal es una mala práctica, ya que no te permite hacer debug de manera correcta.

Saludos

Edit coloque un ejemplo con PDO para que le echen un ojo es una abstracción para conexiones a las base de datos
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #5 (permalink)  
Antiguo 12/05/2012, 21:20
Avatar de Vector_Latino  
Fecha de Ingreso: mayo-2012
Mensajes: 25
Antigüedad: 12 años, 6 meses
Puntos: 6
Respuesta: try catch obligatorio ?

Esta muy bien también usar el try and catch en la conexión, solo decía que se pueden manejar cualquier error de conexión ya que las funciones mysql_connect y mysql_select_db siempre te van a retornar un valor False en caso de cualquier error que se presente en la conexión.

ya para controlar otro tipo de errores si se tendría que usar el try and catch, en caso de que no se conozca el retorno de alguna función o si ya se sabe que por x o y motivo se va a generar algún error.

Saludos.

Etiquetas: catch, mysql, obligatorio
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:19.