Try catch – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Try catch – C / C++ – Fórum – Programujte.comTry catch – C / C++ – Fórum – Programujte.com

 

birkof0
Newbie
30. 3. 2008   #1
-
0
-

Mám primitivní dotaz, ale nevím jak dál, protože jsem v C++ už dlouho nedělal. Nevíte proč mi program hlásí chybu v try catch při float cislo = StrToFloat("a")?

Celý kód:

//---------------------------------------------------------------------------


#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button1Click(TObject *Sender)
{
try {
float cislo = StrToFloat("a");
} catch ( ... )
{
ShowMessage("Chyba");
};
}
//---------------------------------------------------------------------------

Nahlásit jako SPAM
IP: 81.0.216.–
You will be assimilated. Resistance is futile.
Anonymní uživatel
~ Anonymní uživatel
0 příspěvků
30. 3. 2008   #2
-
0
-

To birkof : Nebude to tím, že funkce StrToFloat vyvolá výjimku, když vstupní argument není platné číslo?

Nahlásit jako SPAM
IP: 85.71.59.–
birkof0
Newbie
4. 4. 2008   #3
-
0
-

To Anonymní uživatel : Sorry, já jsem se blbě vyjídřil. Ten příklad je schválně napsaný tak, aby vyhodil vyjímku. Problém je v tom, že si tu vyjímku chci ošetřit sám. Nechci aby na mě program řval, že došlo k vyjímce.

Nahlásit jako SPAM
IP: 81.0.216.–
You will be assimilated. Resistance is futile.
Jura
~ Anonymní uživatel
637 příspěvků
4. 4. 2008   #4
-
0
-

No, pokud používáš debug verzi, tak se o to bude starat prostředí. Vybuilduj release, pak by to už mohlo fungovat normálně. Případně zkus projít nastavení Builderu, snad to tam někde bude.

Nahlásit jako SPAM
IP: 85.207.192.–
mephi0
Expert
4. 4. 2008   #5
-
0
-

catch ( ... )


čo su tie bodky ? s tym som sa ešte nestretol asi len pri tych va_parametroch, skus to spraviť takto: (bez (...) )



try
{
// exception
}
catch
{
// vlastné ošetrenie
}

Nahlásit jako SPAM
IP: 85.248.56.–
Program nemusi fungovat rychle, staci ze funguje dostatecne rychle.
Jura
~ Anonymní uživatel
637 příspěvků
4. 4. 2008   #6
-
0
-

To mephi :

To je zcela stadartní způsob zachytávání výjimek. Catch(...) znamená, že se zachytí jakýkoliv typ výjímek. Ostatně takto by se měly psát handlery výjimek.



try
{
}catch( CMojeVyjimka &e)
{
}
catch( CDalsiVyjimka& e)
{
}
catch(...)
{
// necekana chyba, ze ktere se program nedokaze zotavit...
}


Nahlásit jako SPAM
IP: 85.207.192.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 16 hostů

Podobná vlákna

C# - Try and Catch — založil TonyT

Try catch finally — založil damegu

Try { smth } catch { — založil noro

Try-Catch blok vysvětlení — založil Noobster

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý