Witam,
Kiedy wykonuje się poniższy kod:
StreamWriter sw1;
try
{
zm.idUser = dekoduj(Request["id"]);
zm.haslo = Request["haslo"];
sw1 = new StreamWriter(pathMain + "try.txt");
sw1.WriteLine(zm.haslo);
sw1.Close();
}
catch (Exception ex)
{
Response.Redirect("error.aspx");
}
if (zm.idUser == 0)
{ sw1 = new StreamWriter(pathMain + "catch2.txt");
sw1.WriteLine(zm.haslo);
sw1.Close();
Response.Redirect("error.aspx");
}
No i teraz dlaczego te pliki tekstowe które mi się stworzyły to:
W try.txt mam zm.haslo z jakas konkretna wartoscia natomiast w catch2.txt mam zm.haslo i w srodku .txt jest pusto.
Czyli tak jakby w try mam przypisane wartosci a po opuszczeniu try nagle one się czyszczą... dlaczego tak się dzieje?
Ten kod działa prawidłowo a jest na tej samej zasadzie napisany:
class zmienne
{
public int a;
public string b;
}
class Program
{
static void Main(string[] args)
{
zmienne zm = new zmienne();
if (zm.a == 0)
{
try
{
zm.a = 10;
Console.WriteLine(zm.a);
zm.b = "lala";
Console.WriteLine(zm.b);
}
catch { }
Console.WriteLine(zm.a);
Console.WriteLine(zm.b);
}
Console.WriteLine(zm.a);
Console.WriteLine(zm.b);
Console.ReadKey();
}
}
Tutaj zwraca mi za każdym razem 10 i "lala".