Thanks! jl_error() is what I want here.
This might help: > > http://docs.julialang.org/en/release-0.3/manual/embedding/#throwing-julia-exceptions > > On Wed, Dec 24, 2014 at 10:41 PM, 良无 <[email protected] <javascript:>> > wrote: > >> In C or C++ code, I have a function: >> >> void funcname(...){ >> ... >> assert(0); >> ... >> } >> >> if I run `ccall((:funcname, libpath), Void, (...), ...)` in Julia , it >> will terminate the Julia process. >> >> How can I replace assert() with other function to throw an error in Julia? >> >> >> > ccall((:funcname, libpath), Void, (...), ...) >> >> ERROR: .... >> >> I am sorry that I can not make it clear, and I just come to Julia from >> the R world. >> >> Thanks. ;-) >> >> I'm afraid I still don't get it. What do you want to do? >>> >>> >>> On Dec 24, 2014, at 8:15 PM, 良无 <[email protected]> wrote: >>> >>> If you want to release an R package to CRAN, R Core will force you to >>> check this by R CMD check: >>> >>> - Compiled code should never terminate the R process within which it is >>> running. Thus C/C++ calls to assert/abort/exit, Fortran calls to STOP and >>> so on must be avoided. Nor may R code call q(). >>> >>> >>> Le mercredi 24 décembre 2014 à 08:36 -0800, 良无 a écrit : >>>> > In my origin C++ code, I use assert(), but if I want to use this code >>>> > in Julia, maybe I need to replace it with other functions. In R, I >>>> can >>>> > use Rcpp::stop(). Is there any easy way to do it in Julia with C or C >>>> > ++ code. >>>> IIUC, you want to raise a Julia exception from C code, right? >>>> >>>> > And it seems that Julia does not have R CMD check like stuff yet. It >>>> > does not check this kind of issue. >>>> You mean, running a test suite? See >>>> http://docs.julialang.org/en/latest/stdlib/test/ >>>> >>>> and how most packages do this, for example >>>> https://github.com/JuliaStats/StatsBase.jl/tree/master/test >>>> >>>> >>>> Regards >>>> >>> >
