- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
try
{
await storageClient.DownloadObjectAsync(Bucket, fileName, stream).ConfigureAwait(false);
}
catch(Exception ex)
{
throw new FileStorageException($"File '{fileName}' not found in a bucket '{Bucket}'", ex) { StatusCode = StatusCodes.Status404NotFound };
}
gostinho 26.03.2020 22:43 # 0
Fike 26.03.2020 22:59 # 0
phpBidlokoder2 27.03.2020 00:32 # 0
Fike 27.03.2020 01:26 # 0
MAPTOBCKuu_nemyx 27.03.2020 01:41 # +1
MAPTOBCKuu_nemyx 27.03.2020 01:44 # 0
KOPOHABuPYC 27.03.2020 02:16 # −1
Евреев туда не пустят.
phpBidlokoder2 27.03.2020 09:21 # −1
Fike 27.03.2020 04:32 # +1
horil97821 27.03.2020 13:55 # 0
gost 27.03.2020 14:06 # 0
А вот ловля «Exception ex» — это говно, да.
horil97821 27.03.2020 14:18 # 0
gost 27.03.2020 14:25 # 0
Писать в лог нужно далеко не всегда, важен коньтекст. Если этот код — из либы для работы с какой-то сетевой ФС, то выбрасывания подробного, семантически верного, исключения вполне достаточно, либе совершенно не обязательно срать в лог, это оверинжиниринг. В лог писать должен тот код, который этот самый FileStorageException поймает.
horil97821 27.03.2020 14:28 # 0
gost 27.03.2020 14:32 # 0
horil97821 27.03.2020 14:33 # 0
gost 27.03.2020 14:35 # 0
>>> в эксепшене создается еще один эксепшн
нет.
guest8 27.03.2020 14:45 # −999
gost 27.03.2020 14:49 # 0
https://ideone.com/zXstg3
horil97821 27.03.2020 14:55 # 0
Fike 27.03.2020 14:56 # 0
horil97821 27.03.2020 15:13 # 0
gost 27.03.2020 15:06 # 0
horil97821 27.03.2020 15:11 # 0
gost 27.03.2020 15:20 # 0
horil97821 27.03.2020 15:31 # +1
gost 27.03.2020 15:37 # 0
horil97821 27.03.2020 15:46 # 0
gost 27.03.2020 15:48 # 0
horil97821 27.03.2020 15:49 # 0
guest8 27.03.2020 15:51 # −999
bormand 27.03.2020 15:52 # +1
Сейчас так модно делать.
gost 27.03.2020 15:53 # +1
guest8 27.03.2020 16:03 # −999
guest8 27.03.2020 17:02 # −999
guest8 27.03.2020 15:47 # −999
eukaryote 28.03.2020 07:50 # 0
OlegUP 27.03.2020 23:21 # 0
ex тоже в camel case
а StatusCode в pascal case.
Это у шарперов норм?
guest8 27.03.2020 23:24 # −999
kak 27.03.2020 23:32 # 0
Впрочем, это же Visual BRACIS...
bormand 27.03.2020 23:57 # +1
Зачем? Зачем? Чем они от переменных отличаются?
kak 28.03.2020 00:08 # 0
KOPOHABuPYC 28.03.2020 01:44 # 0
guest8 28.03.2020 02:21 # −999
eukaryote 28.03.2020 07:22 # +1
Для приватных строгого соглашения нет, и вот их как правило пишут со строчной, как обычную переменную; некоторые ещё андерскор впереди добавляют.
https://docs.microsoft.com/en-us/dotnet/standard/design-guidelines/capitalization-conventions
guest8 28.03.2020 15:06 # −999
bootcamp_dropout 28.03.2020 11:42 # 0
Неужели у storageClient нет метода "проверить наличие файла"?
gost 28.03.2020 11:59 # +1
Судя по https://googleapis.github.io/google-cloud-dotnet/docs/Google.Cloud.Storage.V1/api/Google.Cloud.Storage.V1.StorageClient.ht ml — именно такого нет, разве что GetObject().
Впрочем, он и не нужен: в распределённых приложениях паттерн «проверить наличие, потом использовать» — априори говно.
guest8 28.03.2020 15:04 # −999
Fike 29.03.2020 04:01 # 0
bootcamp_dropout 29.03.2020 13:46 # 0
Если эта хуйня упакована в storageClient, можно было бы создавать какой-нибудь StorageClientInstance, который бы под капотом делал один запрос, но поддерживал бы оба метода, храня в себе состояние этого запроса. Разве получилось бы хуево?
gost 29.03.2020 14:00 # 0
KOPOHABuPYC 29.03.2020 22:02 # 0
eukaryote 28.03.2020 16:11 # 0
guest8 28.03.2020 16:20 # −999
MAPTOBCKuu_nemyx 28.03.2020 16:28 # 0
guest8 28.03.2020 16:42 # −999
MAPTOBCKuu_nemyx 28.03.2020 16:53 # 0
gostinho 28.03.2020 17:16 # 0
MAPTOBCKuu_nemyx 28.03.2020 17:23 # 0
guest8 28.03.2020 17:25 # −999
MAPTOBCKuu_nemyx 28.03.2020 17:31 # 0
Depression_xyu 28.03.2020 19:01 # 0
gostinho 28.03.2020 20:03 # 0
Fike 29.03.2020 04:01 # 0
gost 28.03.2020 16:33 # 0
kak 28.03.2020 23:26 # 0
guest8 29.03.2020 00:12 # −999
guest8 29.03.2020 00:14 # −999
kak 29.03.2020 00:34 # 0