标签: error-handling

Angular 6:可观察的异步绑定在 HttpErrorResponse 之后没有按预期工作

我正在尝试使用此处列出的 ErrorHandler 全局处理角度错误:https : //medium.com/@aleixsuau/error-handling-angular-859d529fa53a

我正在将错误消息转发给通知服务。应用组件模板绑定到服务使用异步管道提供的 observable。

当客户端错误被抛出时,一切都按预期工作:错误被捕获,通知被发送,UI 显示错误消息。3 秒后消息消失,因为 observable 变为空值。

在 HttpErrorResponses 上,行为很奇怪:错误被捕获,通知被发送,但 UI 没有更新。除非在 3 秒内抛出另一个 HttpErrorResponse!

我是否遗漏了什么,或者这是 Angular 6 或 RxJs 中的错误?

我在 stackblitz 上创建了一个最小、完整且可验证的示例https ://stackblitz.com/edit/angular-e9keuw

错误处理程序:

@Injectable()
export class ErrorSink implements ErrorHandler {

    // ErrorHandler is created before the providers
    // we have to use the Injector to get them
    constructor(private injector: Injector) {}

    handleError(error: Error | HttpErrorResponse) {
        console.error('Caught error: ', error);

        const notificationService = this.injector.get(NotificationService);

        // client error
        if …
Run Code Online (Sandbox Code Playgroud)

error-handling rxjs angular

0
推荐指数
1
解决办法
650
查看次数

vector.size() 在比较中意外地工作

当我在比较中使用 vector.size() 时,它给出了意想不到的结果

vector<int> v;
for(int i = 0; i < v.size() -1;++i){
    printf("i = %d\n", i);
    printf("v[i] = %d\n", v[i]);
}
Run Code Online (Sandbox Code Playgroud)

由于向量的大小为 0,它不应该打印任何内容,而是进入 for 循环并打印i = 0并给出分段错误。但它不应该甚至进入for循环v.size() - 1-1

为什么会发生?

c++ error-handling vector segmentation-fault

0
推荐指数
1
解决办法
74
查看次数

带有 Room 错误处理的 RxJava2 - 数据库主线程异常

我正在尝试从远程源检索项目,如果这不起作用(没有互联网),我想从房间数据库中检索缓存的项目。我为发生错误时创建了一个新单曲,并指定了它应该订阅和观察的线程。我仍然是这个例外:

java.lang.IllegalStateException: Cannot access database on the main thread since it may potentially lock the UI for a long period of time.
Run Code Online (Sandbox Code Playgroud)

这是检索项目的方法:

public LiveData<List<Article>> getNewsArticles() {
    return LiveDataReactiveStreams.fromPublisher(
            newsService.getNewsArticles()
                    .subscribeOn(Schedulers.io())
                    .observeOn(AndroidSchedulers.mainThread())

                    .onErrorResumeNext(throwable ->
                            Single.just(newsDao.findAllForNumber(AMOUNT_OF_ARTICLES_PER_PAGE))
                                    .subscribeOn(Schedulers.io())
                                    .observeOn(AndroidSchedulers.mainThread()))

                    .subscribeOn(Schedulers.io())
                    .observeOn(AndroidSchedulers.mainThread())

                    .doOnSuccess(newsArticles -> Completable.fromAction(() ->
                            newsDao.insertAll(newsArticles))
                            .subscribeOn(Schedulers.io()))
                    .toFlowable());
}
Run Code Online (Sandbox Code Playgroud)

LiveDataReactiveStreams 将其转换为 livedata 对象并处理订阅,所以我的视图只知道 livedata。

我似乎无法让 onErrorResumeNext 调用在后台线程上工作。

任何帮助将不胜感激!

回答

我最终用以下代码解决了这个问题:

public LiveData<List<Article>> getNewsArticles() {
    return LiveDataReactiveStreams.fromPublisher(
            newsService.getNewsArticles()
                    .observeOn(Schedulers.io())
                    .doOnSuccess(newsArticles -> newsDao.insertAll(newsArticles))
                    .onErrorResumeNext(throwable -> Single.fromCallable(() -> newsDao.findAllForNumber(AMOUNT_OF_ARTICLES_PER_PAGE)))
                    .toFlowable());
}
Run Code Online (Sandbox Code Playgroud)

database error-handling android reactive

0
推荐指数
1
解决办法
1164
查看次数

尝试打开工作簿时的 VBA 错误处理

我正在尝试遍历文件夹中的所有文件,打开它们并删除文档信息。我在处理无法打开的文件时遇到问题,或者在打开时遇到有关禁用宏的问题。我尝试使用 on error resume next 和 on error goto 0 来解决这个问题。但是后来我遇到了运行时失败,因为当我尝试关闭打开的文件时,我的工作簿对象 (wb) 尚未设置。

我已经阅读了关于“On Error Resume Next”和“On error goto 0”的文档,但我不相信我在这里正确使用它们。非常感谢任何帮助,谢谢。

Option Explicit
Sub test_Scrubber_New()

Dim directory As String, fileName As String, i As Variant, wb As Workbook
Application.DisplayAlerts = False
Application.ScreenUpdating = False

'directory = "C:\Users\bayli\Desktop\Files for Testing\"
directory = "C:\Users\bayli\Desktop\excel files\"
fileName = Dir(directory & "*.xl??")

i = 0
Do While fileName <> ""
    On Error Resume Next
    Set wb = Workbooks.Open(directory & fileName)
    On Error GoTo 0
        'remove …
Run Code Online (Sandbox Code Playgroud)

error-handling excel vba

0
推荐指数
1
解决办法
2万
查看次数

程序员说“引发错误”是什么意思(例如,为什么要这样做)?

我正在学习 python 教程,然后来到了一个介绍错误的部分(熟悉错误,不要在出现问题时感到害怕等)。在深入研究了一些错误之后,我看到了“引发错误”和“引发异常”这两个词。

这是特定功能吗?如果是这样,“引发错误”有什么好处?在可视化这一点时,似乎执行代码时产生的错误在运行时被提升到其他代码之上......有人可以帮我把它拼凑起来吗?

提前致谢!

python error-handling

0
推荐指数
1
解决办法
949
查看次数

Golang 返回 nil 不返回 nil

我创建了一个自定义错误类型来包装错误,以便在 Golang 中更轻松地进行调试。当有错误打印时它可以工作,但现在它会引起恐慌。

演示

type Error struct {
    ErrString string
}

func (e *Error) Error() string {
    return e.ErrString
}

func Wrap(err error, str string) *Error {
    if err == nil {
        return nil
    }
    e := &Error{
        ErrString: str + err.Error(),
    }
    return e
}
Run Code Online (Sandbox Code Playgroud)

当我调用一个函数并且它不返回错误时,我应该仍然能够包装错误。

预期的行为是,如果错误为零,它应该简单地忽略它,不幸的是,它会做相反的事情。

func foo() error {
    err := bar()
    return Wrap(err, "bar called")
}

func bar() error {
    return nil
}

func main() {
    err := foo()
    if err != nil {
        fmt.Printf("Found error …
Run Code Online (Sandbox Code Playgroud)

error-handling go

0
推荐指数
1
解决办法
2211
查看次数

python-flask 处理应用程序错误

我已经构建了一个 Flask 应用程序,并尝试使用 errorhandler 装饰器从我的路由中捕获未处理的应用程序错误。

我有一个看起来像这样的 main.py,

app = Flask(__name__)
api = Api(app)

api.add_resource(Ping, '/ping')

@app.errorhandler(500)
def internal_server_error(error):
    print "caught internal server error"
    return "This page does not exist", 500
Run Code Online (Sandbox Code Playgroud)

路由 Ping 在另一个文件中,这里是该文件的示例版本

class Ping(Resource):
    def get(self):

        raise
        return {}, 200
Run Code Online (Sandbox Code Playgroud)

我已经加薪以尝试重现 500 内部服务器错误。这是我的应用程序引发的示例错误

[2019-01-26 10:37:36,449] ERROR in app: Exception on /events/v1/monitoring/ping [GET]
Traceback (most recent call last):
  File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 1813, in full_dispatch_request
    rv = self.dispatch_request()
  File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 1799, in dispatch_request
    return self.view_functions[rule.endpoint](**req.view_args)
  File "/usr/local/lib64/python2.7/site-packages/flask_restful/__init__.py", line 480, in …
Run Code Online (Sandbox Code Playgroud)

python error-handling exception-handling flask

0
推荐指数
1
解决办法
2405
查看次数

颤振构建错误 - 合并 dex 档案

我今天升级了颤振(颤振更新)和包(颤振包更新),因为我的应用程序没有构建。

这是我得到的输出(在尝试将 sdk 从 27 更改为 28 并清理之后)

我会很感激你的帮助。

Launching lib\main.dart on in debug mode...
Run Code Online (Sandbox Code Playgroud)

正在初始化 gradle... 解决依赖项... Gradle 任务 'assembleDebug'... ******************************** ************************* 警告:如果此版本的 device_info 或其依赖项与 AndroidX 不兼容,则会破坏您的 Android 构建。有关该问题以及如何修复它的更多信息,请参见 h。对于所有 Android 构建失败,都会打印此警告。错误的真正根本原因可能是无关的。****************************************************** ******* D8:程序类型已经存在:android.support.v4.app.INotificationSideChannel$Stub$Proxy

FAILURE:构建失败,出现异常。

  • 出了什么问题:任务 ':app:transformDexArchiveWithExternalLibsDexMergerForDebug' 执行失败。

    com.android.builder.dexing.DexArchiveMergerException:合并 dex 档案时出错:C:\Users\X\Documents\Projects\git\XX\app\build\app\intermediates\transforms\dexBuilder\debug\271.jar, C :\Users\X\Documents\Projects\git\XX\app\build\app\intermediates\transforms\dexBuilder\debug\272.jar, C:\Users\X\Documents\Projects\git\XX\app\build \app\intermediates\transforms\dexBuilder\debug\273.jar, C:\Users\X\Documents\Projects\git\XX\app\build\app\intermediates\transforms\dexBuilder\debug\274.jar, C: \Users\X\Documents\Projects\git\XX\app\build\app\intermediates\transforms\dexBuilder\debug\275.jar, C:\Users\X\Documents\Projects\git\XX\app\build\ app\intermediates\transforms\dexBuilder\debug\276.jar, C:\Users\X\Documents\Projects\git\XX\app\build\app\intermediates\transforms\dexBuilder\debug\277.jar, C:\Users\X\Documents\Projects\git\XX\app\build\app\intermediates\transforms\dexBuilder\debug\278.jar, C:\Users\X\Documents\Projects\git\XX\app\build\ app\intermediates\transforms\dexBuilder\debug\279.jar, C:\Users\X\Documents\Projects\git\XX\app\build\app\intermediates\transforms\dexBuilder\debug\280.jar, C:\ Users\X\Documents\Projects\git\XX\app\build\app\intermediates\transforms\dexBuilder\debug\281.jar, C:\Users\X\Documents\Projects\git\XX\app\build\app \intermediates\transforms\dexBuilder\debug\282.jar, C:\Users\X\Documents\Projects\git\XX\app\build\app\intermediates\transforms\dexBuilder\debug\283.jar, C:\Users \X\Documents\Projects\git\XX\app\build\app\intermediates\transforms\dexBuilder\debug\284.jar, C:\Users\X\Documents\Projects\git\XX\app\build\app\中间件\转换\dexBuilder\debug\285.jar, C:\Users\X\Documents\Projects\git\XX\app\build\app\intermediates\transforms\dexBuilder\debug\286.jar, C:\Users\X\Documents\Projects\git\XX\app\build\ app\intermediates\transforms\dexBuilder\debug\287.jar, C:\Users\X\Documents\Projects\git\XX\app\build\app\intermediates\transforms\dexBuilder\debug\288.jar, C:\ Users\X\Documents\Projects\git\XX\app\build\app\intermediates\transforms\dexBuilder\debug\289.jar, C:\Users\X\Documents\Projects\git\XX\app\build\app \intermediates\transforms\dexBuilder\debug\290.jar, C:\Users\X\Documents\Projects\git\XX\app\build\app\intermediates\transforms\dexBuilder\debug\291.jar, C:\Users \X\Documents\Projects\git\XX\app\build\app\intermediates\transforms\dexBuilder\debug\292.jar, C:\Users\X\Documents\Projects\git\XX\app\build\app\中间件\转换\dexBuilder\debug\293.jar, C:\Users\X\Documents\Projects\git\XX\app\build\app\intermediates\transforms\dexBuilder\debug\294.jar, C:\Users\X\Documents\Projects\git\XX\app\build\ app\intermediates\transforms\dexBuilder\debug\295.jar, C:\Users\X\Documents\Projects\git\XX\app\build\app\intermediates\transforms\dexBuilder\debug\296.jar, …

error-handling android build dex flutter

0
推荐指数
1
解决办法
1406
查看次数

如何在颤振中解决“RangeError(索引):无效值:有效值范围为空:0”?

在此处输入图片说明

我要尝试从 firestore 数据库中获取图像并将其放入字符串类型列表并希望显示为滑块图像。但上述错误发生在屏幕上,但几毫秒后,错误消失,图像显示为滑块

已声明的全局变量:

 List<String> getSliderImages=[];
Run Code Online (Sandbox Code Playgroud)

从 Firestore 获取图像的方法:

这个方法正在调用内部initState()方法

 void getSliderImage(){
   List<String> userId=[];
    Firestore.instance.collection("Slider").getDocuments()
    .then((QuerySnapshot snapshot) {
      snapshot.documents.forEach((f){
        setState(() {
         userId.add(f.documentID);  
        });
      });


      for(int i=0;i<userId.length;i++){
        setState(() {
         print('snap.documentID_IF_userId :${userId[i]}');
         Firestore.instance.collection('Slider').document(userId[i]).get().then((DocumentSnapshot document){
          String image=document['Image'];
          getSliderImages.add(image); 
          print('snap.documentID_IF_userId_IMAGE :$image');
          print("getSliderImages:$getSliderImages");
         });
        });
      } 
    }).catchError((onError){
      print(onError); 
      setState(() {
      Fluttertoast.showToast(msg: "$onError"); 
      });
    });
  }
Run Code Online (Sandbox Code Playgroud)

滑块小部件,我想在那里显示图像:

这里我使用了carousel_pro插件作为 Slider

Container(
                padding: const EdgeInsets.all(10.0),
              decoration: BoxDecoration(
                borderRadius: BorderRadius.all(Radius.circular(30.0)),
                //color: Colors.black
              ),
              height: MediaQuery.of(context).size.height/5,
              width: MediaQuery.of(context).size.height/2,
              child: Carousel(
                images: [
                   new NetworkImage(getSliderImages[0]),
                   new NetworkImage(getSliderImages[1]), …
Run Code Online (Sandbox Code Playgroud)

error-handling dart firebase flutter google-cloud-firestore

0
推荐指数
1
解决办法
6493
查看次数

Homebrew 无法安装 - 致命:不在 git 目录中

我正在尝试在 macOS 上安装自制软件,但失败并显示以下消息:


h
==> Installation successful!



==> Homebrew has enabled anonymous aggregate formulae and cask analytics.

Read the analytics documentation (and how to opt-out) here:

  https://docs.brew.sh/Analytics

No analytics data has been sent yet (or will be during this `install` run).



==> Homebrew is run entirely by unpaid volunteers. Please consider donating:

  https://github.com/Homebrew/brew#donations



fatal: not in a git directory

Failed during: git config --replace-all homebrew.analyticsmessage true
Run Code Online (Sandbox Code Playgroud)

关于它可能是什么以及如何解决它的任何想法?非常感谢 (:

git error-handling bash installation homebrew

0
推荐指数
2
解决办法
1696
查看次数