Как напечатать значимое исключение firebase-dart - PullRequest
0 голосов
/ 29 мая 2019

Я не могу вывести значимую ошибку исключения на консоль. Я получаю только [object Object]

@TestOn('browser')
import 'dart:io';

import 'package:firebase/firebase.dart';
import 'package:test/test.dart';

import 'package:workshop_participant_flutter/firebase_config.dart' as my_config;

void main() {
  test('too big images cant be uploaded', () async {
    App app;
    app = my_config.initFirebase();
    final ref = app.storage().ref('/storageTest/test.file');
    final image = File('./too_big_file.png');
    try {
      await ref.put(image).future;
    } on IOException catch (e) {
      print(e);
    } catch (e) {
      print(e.toString());
      print(e);
    }
  });
}

Я загружаю изображение в Firebase Storage, и оно не получается, потому что я установил правила отклонения всех файлов размером более x байтов. Это желаемое поведение.

Все остальные тесты работают нормально. Так что настройка и настройка в порядке. Моя проблема сейчас в том, что я хочу узнать, какое сообщение об ошибке я получаю. Я хочу поймать это исключение и обработать его.

Я надеюсь, что кто-то споткнулся о том же явлении и может посоветовать мне здесь.

Если вы хотите запустить тестовый код, указанный выше, вам также понадобится этот файл

<!DOCTYPE html>
<html lang="en">
  <head>
    <title>Upload Test</title>
  </head>
  <body>
    <script src="https://www.gstatic.com/firebasejs/5.5.2/firebase-app.js"></script>
    <script src="https://www.gstatic.com/firebasejs/5.5.2/firebase-storage.js"></script>
    <script src="packages/test/dart.js"></script>
    <link rel="x-dart-test" href="upload_test.dart" />
  </body>
</html>

1 Ответ

1 голос
/ 29 мая 2019

Вы должны создать пользовательское исключение в соответствии с вашими потребностями. Пример пользовательского исключения.

class AmountException implements Exception { 
  String get errorMessage => 'Amount should be greater than zero'; 
}  
void main() { 
  try { 
    withdrawAmount(-1); 
  } catch(e) { 
    print(e.errorMessage); 
  } finally { 
    print('Ending requested operation.....'); 
  } 
}  
void withdrawAmount(int amount) { 
  if (amount <= 0) { 
    throw AmountException(); 
  } 
} 

https://www.tutorialspoint.com/dart_programming/dart_programming_exceptions.htm

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...