使用抛异常替代asset,提高代码稳定性

This commit is contained in:
xiongziliang 2020-05-30 11:49:36 +08:00
parent fb4435fca9
commit 31ad2caa6b
3 changed files with 39 additions and 0 deletions

31
3rdpart/assert.h Normal file
View File

@ -0,0 +1,31 @@
/*
* Copyright (c) 2016 The ZLMediaKit project authors. All Rights Reserved.
*
* This file is part of ZLMediaKit(https://github.com/xiongziliang/ZLMediaKit).
*
* Use of this source code is governed by MIT license that can be found in the
* LICENSE file in the root of the source tree. All contributing project authors
* may be found in the AUTHORS file in the root of the source tree.
*/
#ifndef ZLMEDIAKIT_ASSERT_H
#define ZLMEDIAKIT_ASSERT_H
#include <stdio.h>
#ifndef NDEBUG
#ifdef assert
#undef assert
#endif//assert
#ifdef __cplusplus
extern "C" {
#endif
extern void Assert_Throw(int failed, const char *exp, const char *func, const char *file, int line);
#ifdef __cplusplus
}
#endif
#define assert(exp) Assert_Throw(!(exp), #exp, __FUNCTION__, __FILE__, __LINE__);
#endif//NDEBUG
#endif //ZLMEDIAKIT_ASSERT_H

View File

@ -43,6 +43,7 @@ INCLUDE_DIRECTORIES(${MediaServer_Root}/libmpeg/include)
INCLUDE_DIRECTORIES(${MediaServer_Root}/libmov/include) INCLUDE_DIRECTORIES(${MediaServer_Root}/libmov/include)
INCLUDE_DIRECTORIES(${MediaServer_Root}/libflv/include) INCLUDE_DIRECTORIES(${MediaServer_Root}/libflv/include)
INCLUDE_DIRECTORIES(${MediaServer_Root}/librtp/include) INCLUDE_DIRECTORIES(${MediaServer_Root}/librtp/include)
INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/3rdpart)
set(ENABLE_HLS true) set(ENABLE_HLS true)
set(ENABLE_OPENSSL true) set(ENABLE_OPENSSL true)

View File

@ -295,3 +295,10 @@ const string kBenchmarkMode = "benchmark_mode";
} // namespace mediakit } // namespace mediakit
void Assert_Throw(int failed, const char *exp, const char *func, const char *file, int line){
if(failed) {
_StrPrinter printer;
printer << "Assertion failed: (" << exp << "), function " << func << ", file " << file << ", line " << line << ".";
throw std::runtime_error(printer);
}
}