mirror of
https://github.com/sochix/TLSharp.git
synced 2025-12-06 08:02:00 +01:00
Merge pull request #256 from knocte/improveExceptionHandlingForPhoneMigrateX
Improve exception handling
This commit is contained in:
commit
92e5bb32d5
|
|
@ -279,9 +279,7 @@ namespace TLSharp.Core.Network
|
||||||
{
|
{
|
||||||
var resultString = Regex.Match(errorMessage, @"\d+").Value;
|
var resultString = Regex.Match(errorMessage, @"\d+").Value;
|
||||||
var dcIdx = int.Parse(resultString);
|
var dcIdx = int.Parse(resultString);
|
||||||
var exception = new InvalidOperationException($"Your phone number registered to {dcIdx} dc. Please update settings. See https://github.com/sochix/TLSharp#i-get-an-error-migrate_x for details.");
|
throw new MigrationNeededException(dcIdx);
|
||||||
exception.Data.Add("dcId", dcIdx);
|
|
||||||
throw exception;
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
@ -484,4 +482,15 @@ namespace TLSharp.Core.Network
|
||||||
return new MemoryStream(new byte[len], 0, len, true, true);
|
return new MemoryStream(new byte[len], 0, len, true, true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
internal class MigrationNeededException : Exception
|
||||||
|
{
|
||||||
|
internal int DC { get; private set; }
|
||||||
|
|
||||||
|
internal MigrationNeededException(int dc)
|
||||||
|
: base ("$Your phone number is registered to a different dc: {dc}. Please migrate.")
|
||||||
|
{
|
||||||
|
DC = dc;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -110,16 +110,9 @@ namespace TLSharp.Core
|
||||||
|
|
||||||
completed = true;
|
completed = true;
|
||||||
}
|
}
|
||||||
catch (InvalidOperationException ex)
|
catch (MigrationNeededException ex)
|
||||||
{
|
{
|
||||||
if (ex.Message.StartsWith("Your phone number registered to") && ex.Data["dcId"] != null)
|
await ReconnectToDcAsync(ex.DC);
|
||||||
{
|
|
||||||
await ReconnectToDcAsync((int)ex.Data["dcId"]);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
throw;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue