.NET > Obecné

try - catch

<< < (2/4) > >>

Mi.Chal.:

--- Citace: TC  25-07-2012, 15:49:07 ---
--- Kód: C++ ---                    try            {                VytvorSloupeckyDoDB(sJmenoDB, sDataSource, sUzivatel, sHeslo, column);            }            catch            {            }    } 
--- Konce citace ---

Tak to už je megaprasárna. Dělá se něco, co je zbytečného a selhat to může i z jiných důvodů, než že tam sloupeček není a hlavně se o tom nikdo nedozví. Když ta metoda bude prázdná, tak na to bude stejné spolehnutí :-).

erdt.martin:

--- Citace: Mi.Chal.  25-07-2012, 20:40:19 ---
--- Citace: TC  25-07-2012, 15:49:07 ---
--- Kód: C++ ---                    try            {                VytvorSloupeckyDoDB(sJmenoDB, sDataSource, sUzivatel, sHeslo, column);            }            catch            {            }    } 
--- Konce citace ---

Tak to už je megaprasárna. Dělá se něco, co je zbytečného a selhat to může i z jiných důvodů, než že tam sloupeček není a hlavně se o tom nikdo nedozví. Když ta metoda bude prázdná, tak na to bude stejné spolehnutí :-).

--- Konce citace ---

Tak promin, kazdy neni hned programator ;) A s tim IF NOT EXISTS jsem to zkousel a proste se mi to nepodarilo. Toto alespon docasne resi muj problem a jsem rad, ze to nejak funguje... Rad se ucim novym vecem, ale kdyz obcas neco nefunguje a nevim proc a to i presto, ze to delam podle rad na webu, tak jsem proste z toho podrazdenej. Pak se zeptam tady nebo na builderu a casto se dockam odpovedi, kde s clovekem opovrhujete, namisto, aby jste treba vysvetlili jak se co pouziva a proc tam zrovna tohle nejde.
A ze je to megaprasarna si uvedomuji sam, bohuzel jsem na lepsi reseni zatim neprisel. Napsal jsem sem, alespon pro zkraceni megaprasarny a s tim mi TC pomohl - DEKUJI TC. Az tady dovalcim s MySQL IF NOT EXISTS, tak to mile rad upravim :) To ze to mam zatim resene timto zpusobem neznamena, ze to je finalni reseni. 

Mi.Chal.:

--- Citace: erdt.martin  26-07-2012, 12:06:15 ---Tak promin, kazdy neni hned programator ;) A s tim IF NOT EXISTS jsem to zkousel a proste se mi to nepodarilo. Toto alespon docasne resi muj problem a jsem rad, ze to nejak funguje... Rad se ucim novym vecem, ale kdyz obcas neco nefunguje a nevim proc a to i presto, ze to delam podle rad na webu, tak jsem proste z toho podrazdenej. Pak se zeptam tady nebo na builderu a casto se dockam odpovedi, kde s clovekem opovrhujete, namisto, aby jste treba vysvetlili jak se co pouziva a proc tam zrovna tohle nejde.
A ze je to megaprasarna si uvedomuji sam, bohuzel jsem na lepsi reseni zatim neprisel. Napsal jsem sem, alespon pro zkraceni megaprasarny a s tim mi TC pomohl - DEKUJI TC. Az tady dovalcim s MySQL IF NOT EXISTS, tak to mile rad upravim :) To ze to mam zatim resene timto zpusobem neznamena, ze to je finalni reseni.

--- Konce citace ---

tak sem dej ten kód, ať je vidět, co tam děláš. Bez toho ti těžko může někdo říct, co je špatně.

A to try s prázdným catchem je učebnicový příklad toho, jak se to NEDĚLÁ, protože do budoucna ti to akorát přinese problémy a nebudeš vědět, proč to nefunguje. Vždycky tam má být alespoň zápis do logu, ať to můžeš zpětně dohledat.

erdt.martin:
Tvorim toto:


--- Kód: C++ ---using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;using MySql.Data;using MySql.Data.MySqlClient; namespace GeoCode_A_MySQL{    public partial class MainGPS : Form    {        public MainGPS()        {            InitializeComponent();        }         private void btnZacni_Click(object sender, EventArgs e)        {            GeoCode Geo = new GeoCode();            VytvoreniSloupeckuDoDB VytvorSloupce = new VytvoreniSloupeckuDoDB();            DoplnSouradnice DoplneniSouradnic = new DoplnSouradnice();             // ulozime si obsahy textboxu            string sJmenoDB = tbNastaveniJmenoDatabaze.Text;            string sDataSource = tbNastaveniDataSource.Text;            string sUzivatel = tbNastaveniUzivatel.Text;            string sHeslo = tbNastaveniHeslo.Text;            string sTabulka = tbNastaveniJmenoTabulky.Text;             // pokud se mají pokusit vytvorit sloupce            if (chbNastaveniVytvoritSluopce.Checked)            {                // pokusím se je vytvořit, pokud to skončí s vyjímkou, tak existují                try                {                    VytvorSloupce.VytvorSloupeckyDoDB(sJmenoDB, sDataSource, sUzivatel, sHeslo, "GPSx");                }                catch                {                }                 try                {                    VytvorSloupce.VytvorSloupeckyDoDB(sJmenoDB, sDataSource, sUzivatel, sHeslo, "GPSy");                }                catch                {                }                try                {                    VytvorSloupce.VytvorSloupeckyDoDB(sJmenoDB, sDataSource, sUzivatel, sHeslo, "Accuracy");                }                catch                {                }            }             // připojení k MySQL - je zapotřebí v preferences přidat MySQL.Data            MySqlCommand prikaz = new MySqlCommand();            MySqlConnection pripojeni = new MySqlConnection("Database=" + sJmenoDB + ";DataSource=" + sDataSource + ";UserId="                                                           + sUzivatel +";Password=" + sHeslo);            pripojeni.Open(); // otevre DB             MySqlDataReader cteni;                        //prochazim tabulku a zaznam po zaznamu a vyhledavam kde je minimalne u jedno z GPSx, GPSy, Accuracy rovno null            prikaz.CommandText = "SELECT Adresa, ID FROM firma WHERE GPSx IS NULL OR GPSy IS NULL OR Accuracy IS NULL";             prikaz.Connection = pripojeni;            cteni = prikaz.ExecuteReader();             string sAdresa = "";            string sID = "";            string[] sStazenaData;                        while (cteni.Read())            {                sAdresa = (cteni.GetString(0));                sID = (cteni.GetString(1));                sStazenaData = Geo.StahniSouradniceGPS(sAdresa);                if (sStazenaData[0] != "200")                {                    switch (sStazenaData[0])                    {                        case "500":                            MessageBox.Show("Chyba serveru.");                            break;                        case "601":                            MessageBox.Show("Adresa nebyla zadána nebo byla chybně uvedena. " + sAdresa);                            break;                        case "602":                            MessageBox.Show("Nepodařilo se najít georeferenci k uvedené adrese. " + sAdresa);                            break;                        case "603":                            MessageBox.Show("Tato adresa je legislativně chráněna a nemůže být zveřejněna. " +sAdresa);                            break;                        case "610":                            MessageBox.Show("Chybný klíč API.");                            break;                        case "620":                            MessageBox.Show("Překročen povolený limit hledání pro tento API klíč.");                            break;                        default:                            MessageBox.Show("Neznámý kód.");                            break;                    }                    if (int.Parse(sStazenaData[0]) >= 610)                    {                        break; // zastavi dalsi nacitani                    }                }                 DoplneniSouradnic.DoplnitSouradnice(sJmenoDB, sDataSource, sUzivatel, sHeslo, sStazenaData[2], sStazenaData[3], sStazenaData[1], sID);            }             cteni.Close();            pripojeni.Close();        }    }}  
snad je tento kod dostacujici... Pripadne pridam i ostatni tridy a metody...

Mi.Chal.:

--- Citace: erdt.martin  27-07-2012, 21:43:51 ---snad je tento kod dostacujici... Pripadne pridam i ostatni tridy a metody...

--- Konce citace ---

možná, ale víc by se hodil kód VytvorSloupeckyDoDB() :-)

Navigace

[0] Seznam témat

[#] Další strana

[*] Předchozí strana

Přejít na plnou verzi